mirror of
https://github.com/binwiederhier/ntfy.git
synced 2024-11-26 21:25:18 +01:00
32 lines
1.2 KiB
JavaScript
32 lines
1.2 KiB
JavaScript
|
// Link tabs, as per https://facelessuser.github.io/pymdown-extensions/extensions/tabbed/#linked-tabs
|
||
|
|
||
|
const savedTab = localStorage.getItem('savedTab')
|
||
|
const tabs = document.querySelectorAll(".tabbed-set > input")
|
||
|
for (const tab of tabs) {
|
||
|
tab.addEventListener("click", () => {
|
||
|
const current = document.querySelector(`label[for=${tab.id}]`)
|
||
|
const pos = current.getBoundingClientRect().top
|
||
|
const labelContent = current.innerHTML
|
||
|
const labels = document.querySelectorAll('.tabbed-set > label, .tabbed-alternate > .tabbed-labels > label')
|
||
|
for (const label of labels) {
|
||
|
if (label.innerHTML === labelContent) {
|
||
|
document.querySelector(`input[id=${label.getAttribute('for')}]`).checked = true
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Preserve scroll position
|
||
|
const delta = (current.getBoundingClientRect().top) - pos
|
||
|
window.scrollBy(0, delta)
|
||
|
|
||
|
// Save
|
||
|
localStorage.setItem('savedTab', labelContent)
|
||
|
})
|
||
|
|
||
|
// Select saved tab
|
||
|
const current = document.querySelector(`label[for=${tab.id}]`)
|
||
|
const labelContent = current.innerHTML
|
||
|
if (savedTab === labelContent) {
|
||
|
tab.checked = true
|
||
|
}
|
||
|
}
|