Merge pull request #27183 from overleaf/dp-file-tree-open-state

Persist rail tab isOpen state

GitOrigin-RevId: f1cbaa80fecd10953e9be61a993d69bd2c3c7915
This commit is contained in:
David
2025-07-17 10:33:51 +01:00
committed by Copybot
parent c8c8928bd2
commit 81e5ba5bda

View File

@@ -1,5 +1,6 @@
import { sendSearchEvent } from '@/features/event-tracking/search-events'
import useEventListener from '@/shared/hooks/use-event-listener'
import usePersistedState from '@/shared/hooks/use-persisted-state'
import { isMac } from '@/shared/utils/os'
import {
createContext,
@@ -44,7 +45,7 @@ const RailContext = createContext<
>(undefined)
export const RailProvider: FC<React.PropsWithChildren> = ({ children }) => {
const [isOpen, setIsOpen] = useState(true)
const [isOpen, setIsOpen] = usePersistedState('rail-is-open', true)
const [resizing, setResizing] = useState(false)
const [activeModal, setActiveModalInternal] = useState<RailModalKey | null>(
null
@@ -58,15 +59,15 @@ export const RailProvider: FC<React.PropsWithChildren> = ({ children }) => {
const togglePane = useCallback(() => {
setIsOpen(value => !value)
}, [])
}, [setIsOpen])
const handlePaneExpand = useCallback(() => {
setIsOpen(true)
}, [])
}, [setIsOpen])
const handlePaneCollapse = useCallback(() => {
setIsOpen(false)
}, [])
}, [setIsOpen])
// NOTE: The file tree **MUST** be the first tab to be opened
// since it is responsible for opening the initial document.