41 lines
1005 B
JavaScript
41 lines
1005 B
JavaScript
/* eslint-disable no-console */
|
|
import { COUNTER_NODE_CLASSNAME } from './common/constants';
|
|
|
|
import api from 'common/api';
|
|
|
|
if (document.readyState === 'loading') {
|
|
document.addEventListener('DOMContentLoaded', init);
|
|
} else {
|
|
init();
|
|
}
|
|
|
|
function init() {
|
|
const nodes = [].slice.call(document.getElementsByClassName(COUNTER_NODE_CLASSNAME));
|
|
|
|
if (!nodes) {
|
|
console.error("Remark42: Can't find counter nodes.");
|
|
return;
|
|
}
|
|
|
|
try {
|
|
remark_config = remark_config || {};
|
|
} catch (e) {
|
|
console.error('Remark42: Config object is undefined.');
|
|
return;
|
|
}
|
|
|
|
if (!remark_config.site_id) {
|
|
console.error('Remark42: Site ID is undefined.');
|
|
return;
|
|
}
|
|
|
|
const map = nodes.reduce((acc, node) => {
|
|
acc[node.dataset.url || remark_config.url || window.location.href] = node;
|
|
return acc;
|
|
}, {});
|
|
|
|
api.getCommentsCount({ urls: Object.keys(map), siteId: remark_config.site_id }).then(res => {
|
|
res.forEach(item => (map[item.url].innerHTML = item.count));
|
|
});
|
|
}
|