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: "= $this->icon_url_in ?>",
- icon_url_out: "= $this->icon_url_out ?>",
- i18n: {
- toggle_collapse: "= $this->i18n_toggle_collapse ?>",
- },
+/* exported quick_collapse_vars */
+
+// eslint-disable-next-line no-unused-vars
+const quick_collapse_vars = {
+ icon_url_in: '= $this->icon_url_in ?>',
+ icon_url_out: '= $this->icon_url_out ?>',
+ i18n: {
+ toggle_collapse: '= $this->i18n_toggle_collapse ?>',
+ },
};