From c5a6623e0f320b2a789e0d2667ccfe2e1bd4335f Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Mon, 30 May 2022 01:02:59 +0300 Subject: Fixed settings theme and translation flashing #286 --- src/pages/options/index.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/pages/options/index.js (limited to 'src/pages/options/index.js') diff --git a/src/pages/options/index.js b/src/pages/options/index.js new file mode 100644 index 00000000..39f9c8f3 --- /dev/null +++ b/src/pages/options/index.js @@ -0,0 +1,24 @@ +for (const a of document.getElementById('links').getElementsByTagName('a')) { + a.addEventListener('click', e => { + const path = a.getAttribute('href').replace('#', ''); + loadPage(path); + e.preventDefault(); + }) +} + +function loadPage(path) { + for (const section of document.getElementById('pages').getElementsByTagName('section')) + section.style.display = 'none'; + document.getElementById(`${path}_page`).style.display = 'block'; + + for (const a of document.getElementById('links').getElementsByTagName('a')) + if (a.getAttribute('href') == `#${path}`) a.classList.add('selected') + else a.classList.remove('selected') + + let stateObj = { id: "100" }; + window.history.pushState(stateObj, "Page 2", `/pages/options/index.html#${path}`); +} + +const r = window.location.href.match(/#(.*)/) +if (r) loadPage(r[1]); +else loadPage('general'); \ No newline at end of file -- cgit 1.4.1