From b397dae95113b0eaaf8054adf951fc533791bd0d Mon Sep 17 00:00:00 2001
From: Stephen Tse <Stephen-X@users.noreply.github.com>
Date: Wed, 26 Mar 2025 15:32:13 +0000
Subject: [PATCH] Updating breadcrumbs docs on ConditionalRender (#1871)
---
quartz/components/scripts/explorer.inline.ts | 32 +++++++++++++++++++-------------
1 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/quartz/components/scripts/explorer.inline.ts b/quartz/components/scripts/explorer.inline.ts
index 7160492..b431c53 100644
--- a/quartz/components/scripts/explorer.inline.ts
+++ b/quartz/components/scripts/explorer.inline.ts
@@ -134,9 +134,9 @@
}
for (const child of node.children) {
- const childNode = child.data
- ? createFileNode(currentSlug, child)
- : createFolderNode(currentSlug, child, opts)
+ const childNode = child.isFolder
+ ? createFolderNode(currentSlug, child, opts)
+ : createFileNode(currentSlug, child)
ul.appendChild(childNode)
}
@@ -161,7 +161,7 @@
// Get folder state from local storage
const storageTree = localStorage.getItem("fileTree")
const serializedExplorerState = storageTree && opts.useSavedState ? JSON.parse(storageTree) : []
- const oldIndex = new Map(
+ const oldIndex = new Map<string, boolean>(
serializedExplorerState.map((entry: FolderState) => [entry.path, entry.collapsed]),
)
@@ -186,10 +186,14 @@
// Get folder paths for state management
const folderPaths = trie.getFolderPaths()
- currentExplorerState = folderPaths.map((path) => ({
- path,
- collapsed: oldIndex.get(path) === true,
- }))
+ currentExplorerState = folderPaths.map((path) => {
+ const previousState = oldIndex.get(path)
+ return {
+ path,
+ collapsed:
+ previousState === undefined ? opts.folderDefaultState === "collapsed" : previousState,
+ }
+ })
const explorerUl = explorer.querySelector(".explorer-ul")
if (!explorerUl) continue
@@ -259,15 +263,17 @@
await setupExplorer(currentSlug)
// if mobile hamburger is visible, collapse by default
- for (const explorer of document.getElementsByClassName("mobile-explorer")) {
- if (explorer.checkVisibility()) {
+ for (const explorer of document.getElementsByClassName("explorer")) {
+ const mobileExplorer = explorer.querySelector(".mobile-explorer")
+ if (!mobileExplorer) return
+
+ if (mobileExplorer.checkVisibility()) {
explorer.classList.add("collapsed")
explorer.setAttribute("aria-expanded", "false")
}
- }
- const hiddenUntilDoneLoading = document.querySelector(".mobile-explorer")
- hiddenUntilDoneLoading?.classList.remove("hide-until-loaded")
+ mobileExplorer.classList.remove("hide-until-loaded")
+ }
})
function setFolderState(folderElement: HTMLElement, collapsed: boolean) {
--
Gitblit v1.10.0