Clean up redundant code

This commit is contained in:
saberzero1 2024-10-03 19:34:22 +02:00
parent ad1a7d7c91
commit 4e8e251f32
No known key found for this signature in database
GPG Key ID: 41AEE99107640F10

View File

@ -4,10 +4,6 @@ import { FolderState } from "../ExplorerNode"
type MaybeHTMLElement = HTMLElement | undefined type MaybeHTMLElement = HTMLElement | undefined
let currentExplorerState: FolderState[] let currentExplorerState: FolderState[]
function escapeCharacters(str: string) {
return str.replace(/'/g, "\\'").replace(/"/g, '\\"')
}
const observer = new IntersectionObserver((entries) => { const observer = new IntersectionObserver((entries) => {
// If last element is observed, remove gradient of "overflow" class so element is visible // If last element is observed, remove gradient of "overflow" class so element is visible
const explorerUl = document.getElementById("explorer-ul") const explorerUl = document.getElementById("explorer-ul")
@ -65,20 +61,13 @@ function toggleExplorer(this: HTMLElement) {
) as MaybeHTMLElement ) as MaybeHTMLElement
if (!content) return if (!content) return
content.classList.toggle("collapsed") content.classList.toggle("collapsed")
//content.style.maxHeight = content.style.maxHeight === "0px" ? content.scrollHeight + "px" : "0px"
content.classList.toggle("explorer-viewmode") content.classList.toggle("explorer-viewmode")
//prevent scroll under // Prevent scroll under
if (document.querySelector("#mobile-explorer")) { if (document.querySelector("#mobile-explorer")) {
const article = document.querySelectorAll( // Disable scrolling one the page when the explorer is opened on mobile
".popover-hint, footer, .backlinks, .graph, .toc, #progress", const bodySelector = document.querySelector("#quartz-body")
) if (bodySelector) bodySelector.classList.toggle("lock-scroll")
const header = document.querySelector("#quartz-body")
if (article)
article.forEach((element) => {
element.classList.toggle("no-scroll")
})
if (header) header.classList.toggle("lock-scroll")
} }
} }
@ -92,6 +81,7 @@ function setupExplorer() {
// Convert to bool // Convert to bool
const useSavedFolderState = explorer?.dataset.savestate === "true" const useSavedFolderState = explorer?.dataset.savestate === "true"
const usePagePathState = explorer?.dataset.pagepathstate === "true"
if (explorer) { if (explorer) {
// Get config // Get config
@ -124,15 +114,13 @@ function setupExplorer() {
const oldExplorerState: FolderState[] = const oldExplorerState: FolderState[] =
storageTree && useSavedFolderState ? JSON.parse(storageTree) : [] storageTree && useSavedFolderState ? JSON.parse(storageTree) : []
const oldIndex = new Map(oldExplorerState.map((entry) => [entry.path, entry.collapsed])) const oldIndex = new Map(oldExplorerState.map((entry) => [entry.path, entry.collapsed]))
//console.log(explorer.dataset.tree)
//console.log(explorer.dataset.tree ? JSON.parse(explorer.dataset.tree) : [])
const newExplorerState: FolderState[] = explorer.dataset.tree const newExplorerState: FolderState[] = explorer.dataset.tree
? JSON.parse(explorer.dataset.tree) ? JSON.parse(explorer.dataset.tree)
: [] : []
currentExplorerState = [] currentExplorerState = []
for (const { path, collapsed } of newExplorerState) { for (const { path, collapsed } of newExplorerState) {
currentExplorerState.push({ path, collapsed: /*oldIndex.get(path) ?? */ collapsed }) currentExplorerState.push({ path, collapsed: usePagePathState ? oldIndex.get(path) ?? collapsed : collapsed })
} }
currentExplorerState.map((folderState) => { currentExplorerState.map((folderState) => {
@ -167,25 +155,16 @@ function toggleExplorerFolders() {
window.addEventListener("resize", setupExplorer) window.addEventListener("resize", setupExplorer)
document.addEventListener("DOMContentLoaded", () => {
const explorer = document.querySelector("#mobile-explorer")
if (explorer) {
explorer.classList.add("collapsed")
const content = explorer.nextElementSibling?.nextElementSibling as HTMLElement
content.classList.add("collapsed")
content.classList.toggle("explorer-viewmode")
}
toggleExplorerFolders()
})
document.addEventListener("nav", () => { document.addEventListener("nav", () => {
const explorer = document.querySelector("#mobile-explorer") const explorer = document.querySelector("#mobile-explorer")
if (explorer) { if (explorer) {
explorer.classList.add("collapsed") explorer.classList.add("collapsed")
const content = explorer.nextElementSibling?.nextElementSibling as HTMLElement const content = explorer.nextElementSibling?.nextElementSibling as HTMLElement
if (content) {
content.classList.add("collapsed") content.classList.add("collapsed")
content.classList.toggle("explorer-viewmode") content.classList.toggle("explorer-viewmode")
} }
}
setupExplorer() setupExplorer()
//add collapsed class to all folders //add collapsed class to all folders