diff options
Diffstat (limited to 'static/js/utterances.js')
| -rw-r--r-- | static/js/utterances.js | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/static/js/utterances.js b/static/js/utterances.js deleted file mode 100644 index ddfa35a..0000000 --- a/static/js/utterances.js +++ /dev/null @@ -1,64 +0,0 @@ -function setUtterancesTheme(newTheme) { - // Get the frame with class "utterances-frame". - const frame = document.querySelector('.utterances-frame'); - - if (frame) { - // If the iframe exists, send a message to set the theme. - frame.contentWindow.postMessage( - { type: 'set-theme', theme: newTheme }, - 'https://utteranc.es' - ); - } -} - -function initUtterances() { - // Get the comments div. - const commentsDiv = document.querySelector('.comments'); - - // Check if the comments div exists. - if (commentsDiv) { - // Get all necessary attributes for initializing Utterances. - const repo = commentsDiv.getAttribute('data-repo'); - const issueTerm = commentsDiv.getAttribute('data-issue-term'); - const label = commentsDiv.getAttribute('data-label'); - const lightTheme = commentsDiv.getAttribute('data-light-theme'); - const darkTheme = commentsDiv.getAttribute('data-dark-theme'); - const lazyLoading = commentsDiv.getAttribute('data-lazy-loading'); - - // Create a new script element. - const script = document.createElement('script'); - script.src = 'https://utteranc.es/client.js'; - script.async = true; - script.setAttribute('repo', repo); - script.setAttribute('issue-term', issueTerm); - script.setAttribute('label', label); - - // Set the initial theme. - const currentTheme = - document.documentElement.getAttribute('data-theme') || 'light'; - const selectedTheme = currentTheme === 'dark' ? darkTheme : lightTheme; - script.setAttribute('theme', selectedTheme); - - script.setAttribute('crossorigin', 'anonymous'); - - // Enable lazy loading if specified. - if (lazyLoading === 'true') { - script.setAttribute('data-loading', 'lazy'); - } - - // Append the script to the comments div. - commentsDiv.appendChild(script); - - // Listen for themeChanged event to update the theme. - window.addEventListener('themeChanged', (event) => { - // Determine the new theme based on the event detail. - const selectedTheme = - event.detail.theme === 'dark' ? darkTheme : lightTheme; - // Set the new theme. - setUtterancesTheme(selectedTheme); - }); - } -} - -// Initialize Utterances. -initUtterances(); |
