本地持久化“平铺显示”状态

This commit is contained in:
xintaofei
2026-03-11 14:25:11 +08:00
parent cf90e69891
commit 84e2d2bb56

View File

@@ -396,7 +396,23 @@ export function TabProvider({ children }: TabProviderProps) {
[folder?.path, t]
)
const [isTileMode, setIsTileMode] = useState(false)
const tileModeKey = `folder:${folderId}:tile-mode`
const [isTileMode, setIsTileMode] = useState(() => {
if (typeof window === "undefined") return false
try {
return localStorage.getItem(tileModeKey) === "true"
} catch {
return false
}
})
useEffect(() => {
try {
localStorage.setItem(tileModeKey, String(isTileMode))
} catch {
/* ignore */
}
}, [isTileMode, tileModeKey])
const closeTab = useCallback(
(tabId: string) => {
@@ -454,8 +470,6 @@ export function TabProvider({ children }: TabProviderProps) {
const kept = prev.filter((t) => t.id === tabId)
return kept.length === prev.length ? prev : kept
})
setIsTileMode(false)
const tab = rawTabsRef.current.find((t) => t.id === tabId)
if (tab) {
setActiveTabId(tabId)
@@ -475,7 +489,6 @@ export function TabProvider({ children }: TabProviderProps) {
const replacementTab = makeReplacementDraftTab(seedTab)
setTabs([replacementTab])
setIsTileMode(false)
setActiveTabId(replacementTab.id)
syncFolderContext(replacementTab)
activateConversationPane()