feat: enhance sidebar navigation with localStorage state management and section key support

This commit is contained in:
mlogclub
2026-05-30 20:06:34 +08:00
parent 6594140684
commit edb8355aad
4 changed files with 62 additions and 3 deletions
+16
View File
@@ -2,6 +2,8 @@ export type DashboardNavActiveItem = {
url: string
}
const DASHBOARD_NAV_SECTION_STORAGE_PREFIX = "dashboard.sidebar.navSection"
function normalizePath(path: string) {
return path !== "/" ? path.replace(/\/+$/, "") : path
}
@@ -22,3 +24,17 @@ export function dashboardNavSectionHasActiveItem(
) {
return items.some((item) => isDashboardNavItemActive(pathname, item.url))
}
export function getDashboardNavSectionStorageKey(sectionKey: string) {
return `${DASHBOARD_NAV_SECTION_STORAGE_PREFIX}.${sectionKey}.open`
}
export function parseDashboardNavSectionOpenState(value: string | null) {
if (value === "true") {
return true
}
if (value === "false") {
return false
}
return undefined
}