本地持久化“平铺显示”状态
This commit is contained in:
@@ -396,7 +396,23 @@ export function TabProvider({ children }: TabProviderProps) {
|
|||||||
[folder?.path, t]
|
[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(
|
const closeTab = useCallback(
|
||||||
(tabId: string) => {
|
(tabId: string) => {
|
||||||
@@ -454,8 +470,6 @@ export function TabProvider({ children }: TabProviderProps) {
|
|||||||
const kept = prev.filter((t) => t.id === tabId)
|
const kept = prev.filter((t) => t.id === tabId)
|
||||||
return kept.length === prev.length ? prev : kept
|
return kept.length === prev.length ? prev : kept
|
||||||
})
|
})
|
||||||
setIsTileMode(false)
|
|
||||||
|
|
||||||
const tab = rawTabsRef.current.find((t) => t.id === tabId)
|
const tab = rawTabsRef.current.find((t) => t.id === tabId)
|
||||||
if (tab) {
|
if (tab) {
|
||||||
setActiveTabId(tabId)
|
setActiveTabId(tabId)
|
||||||
@@ -475,7 +489,6 @@ export function TabProvider({ children }: TabProviderProps) {
|
|||||||
|
|
||||||
const replacementTab = makeReplacementDraftTab(seedTab)
|
const replacementTab = makeReplacementDraftTab(seedTab)
|
||||||
setTabs([replacementTab])
|
setTabs([replacementTab])
|
||||||
setIsTileMode(false)
|
|
||||||
setActiveTabId(replacementTab.id)
|
setActiveTabId(replacementTab.id)
|
||||||
syncFolderContext(replacementTab)
|
syncFolderContext(replacementTab)
|
||||||
activateConversationPane()
|
activateConversationPane()
|
||||||
|
|||||||
Reference in New Issue
Block a user