diff --git a/xExtension-QuickCollapse/static/script.js b/xExtension-QuickCollapse/static/script.js index 93b3196..97810b7 100644 --- a/xExtension-QuickCollapse/static/script.js +++ b/xExtension-QuickCollapse/static/script.js @@ -1,68 +1,70 @@ +/* globals context, quick_collapse_vars */ + (function () { - function toggleCollapse() { - const streamElem = document.getElementById('stream'); - const toggleElem = document.getElementById('toggle-collapse'); - const wasCollapsed = streamElem.classList.contains('hide_posts'); + function toggleCollapse() { + const streamElem = document.getElementById('stream'); + const toggleElem = document.getElementById('toggle-collapse'); + const wasCollapsed = streamElem.classList.contains('hide_posts'); - if (wasCollapsed) { - streamElem.classList.remove('hide_posts'); - toggleElem.classList.remove('collapsed'); - } else { - streamElem.classList.add('hide_posts'); - toggleElem.classList.add('collapsed'); - } + if (wasCollapsed) { + streamElem.classList.remove('hide_posts'); + toggleElem.classList.remove('collapsed'); + } else { + streamElem.classList.add('hide_posts'); + toggleElem.classList.add('collapsed'); + } - if (context.does_lazyload && wasCollapsed) { - const lazyloadedElements = streamElem.querySelectorAll( - 'img[data-original], iframe[data-original]' - ); - lazyloadedElements.forEach(function (el) { - el.src = el.getAttribute('data-original'); - el.removeAttribute('data-original'); - }); - } - } + if (context.does_lazyload && wasCollapsed) { + const lazyloadedElements = streamElem.querySelectorAll( + 'img[data-original], iframe[data-original]' + ); + lazyloadedElements.forEach(function (el) { + el.src = el.getAttribute('data-original'); + el.removeAttribute('data-original'); + }); + } + } - function syncWithContext() { - if (!window.context || !window.quick_collapse_vars) { - // The variables might not be available yet, so we need to wait for them. - return setTimeout(syncWithContext, 10); - } + function syncWithContext() { + if (!window.context || !window.quick_collapse_vars) { + // The variables might not be available yet, so we need to wait for them. + return setTimeout(syncWithContext, 10); + } - const toggleElem = document.getElementById('toggle-collapse'); - toggleElem.title = quick_collapse_vars.i18n.toggle_collapse; - toggleElem.innerHTML = `↕`; - toggleElem.innerHTML += `✖`; + const toggleElem = document.getElementById('toggle-collapse'); + toggleElem.title = quick_collapse_vars.i18n.toggle_collapse; + toggleElem.innerHTML = `↕`; + toggleElem.innerHTML += `✖`; - if (context.hide_posts) { - toggleElem.classList.add('collapsed'); - } - } + if (context.hide_posts) { + toggleElem.classList.add('collapsed'); + } + } - const streamElem = document.getElementById('stream'); - if (!streamElem || !streamElem.classList.contains('normal')) { - // The button should be enabled only on "normal" view - return; - } + const streamElem = document.getElementById('stream'); + if (!streamElem || !streamElem.classList.contains('normal')) { + // The button should be enabled only on "normal" view + return; + } - // create the new button - const toggleElem = document.createElement('button'); - toggleElem.id = 'toggle-collapse'; - toggleElem.classList.add('btn'); - toggleElem.addEventListener('click', toggleCollapse); + // create the new button + const toggleElem = document.createElement('button'); + toggleElem.id = 'toggle-collapse'; + toggleElem.classList.add('btn'); + toggleElem.addEventListener('click', toggleCollapse); - // replace the "order" button by a stick containing the order and the - // collapse buttons - const orderElem = document.getElementById('toggle-order'); + // replace the "order" button by a stick containing the order and the + // collapse buttons + const orderElem = document.getElementById('toggle-order'); - const stickElem = document.createElement('div'); - stickElem.classList.add('stick'); + const stickElem = document.createElement('div'); + stickElem.classList.add('stick'); - orderElem.parentNode.insertBefore(stickElem, orderElem); - stickElem.appendChild(orderElem); - stickElem.appendChild(toggleElem); + orderElem.parentNode.insertBefore(stickElem, orderElem); + stickElem.appendChild(orderElem); + stickElem.appendChild(toggleElem); - // synchronizes the collapse button with dynamic vars passed via the - // backend (async mode). - syncWithContext(); + // synchronizes the collapse button with dynamic vars passed via the + // backend (async mode). + syncWithContext(); }()); diff --git a/xExtension-QuickCollapse/views/quickCollapse/vars.js b/xExtension-QuickCollapse/views/quickCollapse/vars.js index 7f70960..33ad5d9 100644 --- a/xExtension-QuickCollapse/views/quickCollapse/vars.js +++ b/xExtension-QuickCollapse/views/quickCollapse/vars.js @@ -1,7 +1,10 @@ -var quick_collapse_vars = { - icon_url_in: "icon_url_in ?>", - icon_url_out: "icon_url_out ?>", - i18n: { - toggle_collapse: "i18n_toggle_collapse ?>", - }, +/* exported quick_collapse_vars */ + +// eslint-disable-next-line no-unused-vars +const quick_collapse_vars = { + icon_url_in: 'icon_url_in ?>', + icon_url_out: 'icon_url_out ?>', + i18n: { + toggle_collapse: 'i18n_toggle_collapse ?>', + }, };