From 6e72549746b518b7668ba051dd28f85ca7d318ad Mon Sep 17 00:00:00 2001 From: Joseph Liu Date: Wed, 1 Jan 2025 13:04:17 -0800 Subject: [PATCH] js: init selfhost btn immediately if already loaded --- assets/js/custom.js | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/assets/js/custom.js b/assets/js/custom.js index 58db353..e8747b0 100644 --- a/assets/js/custom.js +++ b/assets/js/custom.js @@ -1,22 +1,25 @@ -// Put your custom JS code here +// self-hosting view +function getSelfhost() { + return localStorage.getItem('selfhost') || 'no'; +} -// self-hosting view. -const getSelfhost = () => { - return localStorage.getItem('selfhost') || 'no'; -}; +function setSelfhost(enabled) { + localStorage.setItem('selfhost', enabled); + document.documentElement.setAttribute('data-selfhost', enabled); +} -const setSelfhost = (selfhost) => { - localStorage.setItem('selfhost', selfhost); - document.documentElement.setAttribute('data-selfhost', selfhost); -}; +function initSelfhostToggle() { + setSelfhost(getSelfhost()); + document.querySelectorAll('[data-selfhost-value]').forEach((element) => { + element.addEventListener('click', () => { + const selfhost = element.getAttribute('data-selfhost-value'); + setSelfhost(selfhost); + }); + }); +} -setSelfhost(getSelfhost()); - -window.addEventListener('DOMContentLoaded', () => { - document.querySelectorAll('[data-selfhost-value]').forEach((element) => { - element.addEventListener('click', (event) => { - const selfhost = element.getAttribute('data-selfhost-value'); - setSelfhost(selfhost); - }); - } -)}); +if (document.readyState !== 'loading') { + initSelfhostToggle(); +} else { + document.addEventListener('DOMContentLoaded', initSelfhostToggle); +}