<%
const { enable: pjax_enable } = theme?.pjax || {}
const {
    client_id,
    client_secret,
    repository,
    github_id,
    github_admins,
    proxy
} = theme?.comment?.gitalk || {}
let cdn_css = '//cdn.jsdelivr.net/npm/gitalk/dist/gitalk.css'
let cdn_js = '//cdn.jsdelivr.net/npm/gitalk/dist/gitalk.min.js'
const { enable: t_cdn_enable, provider: t_cdn_provider } = theme?.cdn || {}

if (t_cdn_enable === true) {
    switch (t_cdn_provider) {
        case 'jsdelivr':
            cdn_css = '//cdn.jsdelivr.net/npm/gitalk/dist/gitalk.css'
            cdn_js = '//cdn.jsdelivr.net/npm/gitalk/dist/gitalk.min.js'
            break

        case 'unpkg':
            cdn_css = '//unpkg.com/gitalk/dist/gitalk.css'
            cdn_js = '//unpkg.com/gitalk/dist/gitalk.min.js'
            break
    }
}
%>
<% if(client_id && client_secret && github_id && repository) { %>
    <div class="gitalk-comment-container">
        <div id="gitalk-container"></div>
        <link rel="stylesheet" href="<%= cdn_css %>">
        <script <%= pjax_enable === true ? 'data-pjax' : '' %>
                src="<%= cdn_js %>"
                async
                onerror="window.KeepCommentPlugin.loadFailHandle()"
        ></script>
        <script <%= pjax_enable === true ? 'data-pjax' : '' %>
                async
                onerror="window.KeepCommentPlugin.loadFailHandle()"
        >
          window.KeepCommentPlugin.initGitalk = () => {
            let gitalkPathname = decodeURI(location.pathname)
            const gitalkPathnameLength = gitalkPathname.length
            const gitalkPathnameMaxLength = 50
            if (gitalkPathnameLength > gitalkPathnameMaxLength) {
              gitalkPathname = gitalkPathname.substring(0, gitalkPathnameMaxLength - 3) + '...'
            }

            if (window?.Gitalk) {
              new Gitalk({
                clientID: '<%= client_id %>',
                clientSecret: '<%= client_secret %>',
                repo: '<%= repository %>',
                owner: '<%= github_id %>',
                admin: '<%= github_admins || [github_id] %>',
                id: gitalkPathname,
                proxy: '<%= proxy %>',
                language: '<%= config?.language || 'zh-CN' %>'
              }).render('gitalk-container')
              window.KeepCommentPlugin.hideLoading()
            } else {
              setTimeout(() => {
                window.KeepCommentPlugin.initGitalk()
              }, 1000)
            }
          }

          if ('<%= pjax_enable %>' === 'true') {
            setTimeout(() => {
              window.KeepCommentPlugin.initGitalk()
            }, 1200)
          } else {
            window.addEventListener('DOMContentLoaded', window.KeepCommentPlugin.initGitalk)
          }
        </script>
    </div>
<% } else { %>
    <%- partial('../config-error', { comment_plugin: 'Gitalk' }) %>
<% } %>
