This commit is contained in:
Emile Bangma 2025-12-14 06:17:25 +03:00 committed by GitHub
commit 29c3459f65
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -74,9 +74,6 @@ function toggleFolder(evt: MouseEvent) {
collapsed: isCollapsed, collapsed: isCollapsed,
}) })
} }
const stringifiedFileTree = JSON.stringify(currentExplorerState)
localStorage.setItem("fileTree", stringifiedFileTree)
} }
function createFileNode(currentSlug: FullSlug, node: FileTrieNode): HTMLLIElement { function createFileNode(currentSlug: FullSlug, node: FileTrieNode): HTMLLIElement {
@ -165,8 +162,8 @@ async function setupExplorer(currentSlug: FullSlug) {
mapFn: new Function("return " + (dataFns.mapFn || "undefined"))(), mapFn: new Function("return " + (dataFns.mapFn || "undefined"))(),
} }
// Get folder state from local storage // Get folder state from session storage
const storageTree = localStorage.getItem("fileTree") const storageTree = sessionStorage.getItem("fileTree")
const serializedExplorerState = storageTree && opts.useSavedState ? JSON.parse(storageTree) : [] const serializedExplorerState = storageTree && opts.useSavedState ? JSON.parse(storageTree) : []
const oldIndex = new Map<string, boolean>( const oldIndex = new Map<string, boolean>(
serializedExplorerState.map((entry: FolderState) => [entry.path, entry.collapsed]), serializedExplorerState.map((entry: FolderState) => [entry.path, entry.collapsed]),
@ -263,6 +260,9 @@ document.addEventListener("prenav", async () => {
const explorer = document.querySelector(".explorer-ul") const explorer = document.querySelector(".explorer-ul")
if (!explorer) return if (!explorer) return
sessionStorage.setItem("explorerScrollTop", explorer.scrollTop.toString()) sessionStorage.setItem("explorerScrollTop", explorer.scrollTop.toString())
if (!currentExplorerState) return
const stringifiedFileTree = JSON.stringify(currentExplorerState)
sessionStorage.setItem("fileTree", stringifiedFileTree)
}) })
document.addEventListener("nav", async (e: CustomEventMap["nav"]) => { document.addEventListener("nav", async (e: CustomEventMap["nav"]) => {