From dd1f55e0dd7133b2eeeed473db99fe1bf41a39de Mon Sep 17 00:00:00 2001 From: David <33458145+davidmcpowell@users.noreply.github.com> Date: Wed, 29 Oct 2025 09:39:28 +0000 Subject: [PATCH] Merge pull request #29215 from overleaf/dp-rail-tab-storage Store selected rail tab on a per-project basis GitOrigin-RevId: 4770b047bb02c2b63dcf8bc0808bdd675d38c7a2 --- .../js/features/ide-redesign/contexts/rail-context.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/services/web/frontend/js/features/ide-redesign/contexts/rail-context.tsx b/services/web/frontend/js/features/ide-redesign/contexts/rail-context.tsx index a98d3693c5..a3e231d432 100644 --- a/services/web/frontend/js/features/ide-redesign/contexts/rail-context.tsx +++ b/services/web/frontend/js/features/ide-redesign/contexts/rail-context.tsx @@ -1,4 +1,5 @@ import { sendSearchEvent } from '@/features/event-tracking/search-events' +import { useProjectContext } from '@/shared/context/project-context' import useEventListener from '@/shared/hooks/use-event-listener' import usePersistedState from '@/shared/hooks/use-persisted-state' import { isMac } from '@/shared/utils/os' @@ -45,7 +46,11 @@ const RailContext = createContext< >(undefined) export const RailProvider: FC = ({ children }) => { - const [isOpen, setIsOpen] = usePersistedState('rail-is-open', true) + const { projectId } = useProjectContext() + const [isOpen, setIsOpen] = usePersistedState( + `rail-is-open-${projectId}`, + true + ) const [resizing, setResizing] = useState(false) const [activeModal, setActiveModalInternal] = useState( null @@ -70,7 +75,7 @@ export const RailProvider: FC = ({ children }) => { }, [setIsOpen]) const [selectedTab, setSelectedTab] = usePersistedState( - 'selected-rail-tab', + `selected-rail-tab-${projectId}`, 'file-tree' )