59 lines
1.6 KiB
JavaScript
59 lines
1.6 KiB
JavaScript
var closedCommentsKey = null;
|
|
var closedComments = [];
|
|
|
|
function collapsedCommentStorageInit(pageKey) {
|
|
closedCommentsKey = `closedcomments_${pageKey}`;
|
|
}
|
|
|
|
function collapsedCommentStorageApply() {
|
|
if (!closedCommentsKey) {
|
|
return;
|
|
}
|
|
|
|
var closedCommentsValue = localStorage.getItem(closedCommentsKey);
|
|
if (closedCommentsValue === null) {
|
|
closedComments = [];
|
|
} else {
|
|
closedComments = JSON.parse(closedCommentsValue);
|
|
}
|
|
|
|
closedComments.forEach((commentId) => {
|
|
try {
|
|
document.getElementById(`comment-${commentId}`).classList.add("collapsed");
|
|
} catch (e) {}
|
|
})
|
|
}
|
|
|
|
function collapse_comment(id, element) {
|
|
const closed = element.classList.toggle("collapsed")
|
|
const top = element.getBoundingClientRect().y
|
|
|
|
if (closed && top < 0) {
|
|
element.scrollIntoView()
|
|
window.scrollBy(0, - 100)
|
|
}
|
|
|
|
const flags = document.getElementById(`flaggers-${id}`)
|
|
if (flags) flags.classList.add('d-none')
|
|
|
|
if (closed && !closedComments.includes(id)) {
|
|
closedComments.push(id);
|
|
} else if (!closed && closedComments.includes(id)) {
|
|
closedComments.splice(closedComments.indexOf(id), 1);
|
|
}
|
|
if (closedCommentsKey) {
|
|
localStorage.setItem(closedCommentsKey, JSON.stringify(closedComments));
|
|
}
|
|
};
|
|
|
|
function expandMarkdown(t,id) {
|
|
let ta = document.getElementById('markdown-'+id);
|
|
ta.classList.toggle('d-none');
|
|
autoExpand(ta);
|
|
document.getElementsByClassName('text-expand-icon-'+id)[0].classList.toggle('fa-expand-alt');
|
|
document.getElementsByClassName('text-expand-icon-'+id)[0].classList.toggle('fa-compress-alt');
|
|
|
|
let val = t.getElementsByTagName('span')[0]
|
|
if (val.innerHTML == 'View source') val.innerHTML = 'Hide source'
|
|
else val.innerHTML = 'View source'
|
|
};
|