<!DOCTYPE html>
<html lang="en">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="robots" content="NONE,NOARCHIVE" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title><%= htmlWebpackPlugin.options.title || 'Sentry Dev'%></title>
    <script>
      function __sentryMark(name) {
        if (!window.performance || typeof window.performance.mark !== 'function') { return; }
        window.performance.mark(name);
      }
      __sentryMark('head-start');
    </script>
    <script type="text/javascript">
    try {
      function extractSlug() {
        // XXX: If you change this also change its sibilings in:
        // - static/app/utils/extractSlug.tsx
        // - webpack.config.ts
        // NB: This RegExp is not exactly the same as the other two
        var knownDomains = /\.(?:localhost|dev\.getsentry\.net|sentry\.dev)(?:\:\d*)?$/;
        if (window.location.host.match(knownDomains)) {
          var domainParts = window.location.host.split('.');
          var slug = domainParts.shift();
          return slug;
        }

        var pathReg = /\/organizations\/(.+?(?=(\/|$)))(\/|$)/i;
        var matches = pathReg.exec(window.location.pathname);
        if (matches) {
          return matches[1];
        }

        console.error(`Could not extract an organization slug from ${window.location}. Assuming 'sentry'`);

        return 'sentry';
      }

      var slug = extractSlug();
      var preloadPromises = { orgSlug: slug };

      function promiseRequest(url) {
        return new Promise(function (resolve, reject) {
          var xhr = new XMLHttpRequest();
          xhr.open('GET', url);
          xhr.onload = function () {
            try {
              this.status >= 200 && this.status < 300
                ? resolve([JSON.parse(xhr.response), this.statusText, xhr])
                : reject([this.status, this.statusText]);
            } catch(e) {
              reject();
            }
          };
          xhr.onerror = function () {
            reject([this.status, this.statusText]);
          };
          xhr.send();
        });
      }

      function makeUrl(suffix) {
        return '/api/0/organizations/' + slug + suffix;
      }

      window.__sentry_preload = preloadPromises;

      if (slug !== 'new') {
        preloadPromises.organization = promiseRequest(makeUrl('/?detailed=0'));
        preloadPromises.projects =  promiseRequest(makeUrl('/projects/?all_projects=1&collapse=latestDeploys'));
        preloadPromises.teams = promiseRequest(makeUrl('/teams/'));
      }
    } catch(err) {
      console.error(err)
    }
    </script>
  </head>

  <body>
    <% if (htmlWebpackPlugin.options.unsupportedBrowser) { %>
    <style>.unsupported-browser { display: none; }</style>
    <div class="unsupported-browser">
      Sorry, your browser is not supported.  Please upgrade to
      the latest version or switch your browser to use this site.
      See <a href="http://outdatedbrowser.com/">outdatedbrowser.com</a>
      for options.
    </div>
    <% } %>

    <div id="blk_router">
      <div class="loading triangle">
        <div class="loading-mask"></div>
        <div class="loading-indicator" data-test-id="loading-indicator">
          <img src="<%=require('sentry-images/sentry-loader.svg')%>" />
        </div>
        <div class="loading-message">
          <p>Please wait while we load an obnoxious amount of JavaScript.</p>
          <p>
            <small>You may need to disable adblocking extensions to load Sentry.</small>
          </p>
        </div>
      </div>
    </div>

    <% if (htmlWebpackPlugin.options.window) { %>
    <script>
      <% for (var varName in htmlWebpackPlugin.options.window) { %>
          window['<%=varName%>'] = <%= JSON.stringify(htmlWebpackPlugin.options.window[varName]) %>;
        <% } %>
    </script>
    <% } %>
  </body>
</html>