33 lines
835 B
JavaScript
33 lines
835 B
JavaScript
import onmount from 'onmount'
|
|
import injectDisqus from '../helpers/inject_disqus'
|
|
|
|
/**
|
|
* Delay disqus by some time. It's at the bottom of the page, there's no need
|
|
* for it to load fast. This will give more time to load more critical assets.
|
|
*/
|
|
|
|
const DISQUS_DELAY = 100
|
|
|
|
/**
|
|
* Injects Disqus onto the page.
|
|
*/
|
|
|
|
onmount('[data-js-disqus]', function () {
|
|
const data = JSON.parse(this.getAttribute('data-js-disqus'))
|
|
const $parent = this.parentNode
|
|
$parent.setAttribute('hidden', true)
|
|
|
|
window.disqus_config = function () {
|
|
this.page.url = data.url
|
|
this.page.identifier = data.identifier
|
|
}
|
|
|
|
// Disqus takes a while to load, don't do it so eagerly.
|
|
window.addEventListener('load', () => {
|
|
setTimeout(() => {
|
|
injectDisqus(data.host)
|
|
$parent.removeAttribute('hidden')
|
|
}, DISQUS_DELAY)
|
|
})
|
|
})
|