Просмотр исходного кода

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

Persist rail tab isOpen state

GitOrigin-RevId: f1cbaa80fecd10953e9be61a993d69bd2c3c7915
David 1 год назад
Родитель
Сommit
ee8e1915ab
1 измененных файлов с 5 добавлено и 4 удалено
  1. 5 4
      services/web/frontend/js/features/ide-redesign/contexts/rail-context.tsx

+ 5 - 4
services/web/frontend/js/features/ide-redesign/contexts/rail-context.tsx

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