mirror of
https://github.com/alrayyes/wiki.git
synced 2024-11-30 06:56:22 +00:00
24 lines
754 B
TypeScript
24 lines
754 B
TypeScript
|
import { getFullSlug } from "../../util/path"
|
||
|
|
||
|
const checkboxId = (index: number) => `${getFullSlug(window)}-checkbox-${index}`
|
||
|
|
||
|
document.addEventListener("nav", () => {
|
||
|
const checkboxes = document.querySelectorAll(
|
||
|
"input.checkbox-toggle",
|
||
|
) as NodeListOf<HTMLInputElement>
|
||
|
checkboxes.forEach((el, index) => {
|
||
|
const elId = checkboxId(index)
|
||
|
|
||
|
const switchState = (e: Event) => {
|
||
|
const newCheckboxState = (e.target as HTMLInputElement)?.checked ? "true" : "false"
|
||
|
localStorage.setItem(elId, newCheckboxState)
|
||
|
}
|
||
|
|
||
|
el.addEventListener("change", switchState)
|
||
|
window.addCleanup(() => el.removeEventListener("change", switchState))
|
||
|
if (localStorage.getItem(elId) === "true") {
|
||
|
el.checked = true
|
||
|
}
|
||
|
})
|
||
|
})
|