{{define "index"}}
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <link rel="icon" href="/favicon.ico">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" type="text/css" href="/static/css/bulma.min.css?{{.CacheHash}}">
    <link rel="stylesheet" href="/static/fontawesome-free-6.1.2-web/css/all.css">
    <link rel="stylesheet" type="text/css" href="/static/css/chat.css?{{.CacheHash}}">
    <title>{{.Config.Title}}</title>
  </head>
  <body>

    <!-- Photo Detail Modal -->
    <div class="modal" id="photo-modal">
      <div class="modal-background" onclick="document.querySelector('#photo-modal').classList.remove('is-active')"></div>
      <div class="modal-content photo-modal">
          <div class="image is-fullwidth">
              <img id="modalImage" oncontextmenu="return false">
          </div>
      </div>
      <button class="modal-close is-large" aria-label="close" onclick="document.querySelector('#photo-modal').classList.remove('is-active')"></button>
    </div>

    <div id="app"></div>

    <!-- BareRTC constants injected by IndexPage route -->
    <script type="text/javascript">
      const Branding = {{.Config.Branding}};
      const BareRTCStrings = {{.Config.Strings}};
      const PublicChannels = {{.Config.GetChannels}};
      const DMDisclaimer = {{.Config.DirectMessageHistory.DisclaimerMessage}};
      const WebsiteURL = "{{.Config.WebsiteURL}}";
      const PermitNSFW = {{AsJS .Config.PermitNSFW}};
      const TURN = {{.Config.TURN}};
      const WebhookURLs = {{.Config.WebhookURLs}};
      const VIP = {{.Config.VIP}};
      const UserJWTToken = {{.JWTTokenString}};
      const UserJWTValid = {{if .JWTAuthOK}}true{{else}}false{{end}};
      const UserJWTClaims = {{.JWTClaims.ToJSON}};
      const UserJWTRules = {{.JWTClaims.Rules.ToDict}};
      const CachedBlocklist = {{.CachedBlocklist}};
      const CacheHash = {{.CacheHash}};

      // Show the photo detail modal.
      function setModalImage(url) {
          let $modalImg = document.querySelector("#modalImage"),
              $modal = document.querySelector("#photo-modal");
          $modalImg.src = url;
          $modal.classList.add("is-active");
          return false;
      }

      document.addEventListener('DOMContentLoaded', () => {
        // Add global body click to hide the hamburger menu for chat settings.
        const settingsMenu = document.querySelector("#chat-settings-hamburger-menu");
        settingsMenu.addEventListener('click', (e) => {
          settingsMenu.classList.toggle('is-active');
          e.stopPropagation();
        });

        document.body.addEventListener('click', () => {
          if (settingsMenu != undefined && settingsMenu.classList.contains("is-active")) {
            settingsMenu.classList.remove('is-active');
          }
        })
      });
    </script>

    <script type="module" src="/src/main.js"></script>
  </body>
</html>
{{end}}