Merge pull request #24859 from overleaf/dp-history-file-tree

Always show file tree in history view in new editor

GitOrigin-RevId: e993aae4c1625ef7fb0a716ae5bff8edb0e8d0d0
This commit is contained in:
David
2025-04-16 08:04:52 +00:00
committed by Copybot
parent 9babb6283b
commit 846ccd3aac
2 changed files with 43 additions and 23 deletions
@@ -77,33 +77,33 @@ export const ReactContextRoot: FC<{ providers?: Record<string, FC> }> = ({
<Providers.DetachProvider> <Providers.DetachProvider>
<Providers.EditorProvider> <Providers.EditorProvider>
<Providers.PermissionsProvider> <Providers.PermissionsProvider>
<Providers.LayoutProvider> <Providers.RailProvider>
<Providers.ProjectSettingsProvider> <Providers.LayoutProvider>
<Providers.EditorManagerProvider> <Providers.ProjectSettingsProvider>
<Providers.LocalCompileProvider> <Providers.EditorManagerProvider>
<Providers.DetachCompileProvider> <Providers.LocalCompileProvider>
<Providers.ChatProvider> <Providers.DetachCompileProvider>
<Providers.FileTreeOpenProvider> <Providers.ChatProvider>
<Providers.OnlineUsersProvider> <Providers.FileTreeOpenProvider>
<Providers.MetadataProvider> <Providers.OnlineUsersProvider>
<Providers.OutlineProvider> <Providers.MetadataProvider>
<Providers.RailProvider> <Providers.OutlineProvider>
<Providers.IdeRedesignSwitcherProvider> <Providers.IdeRedesignSwitcherProvider>
<Providers.CommandRegistryProvider> <Providers.CommandRegistryProvider>
{children} {children}
</Providers.CommandRegistryProvider> </Providers.CommandRegistryProvider>
</Providers.IdeRedesignSwitcherProvider> </Providers.IdeRedesignSwitcherProvider>
</Providers.RailProvider> </Providers.OutlineProvider>
</Providers.OutlineProvider> </Providers.MetadataProvider>
</Providers.MetadataProvider> </Providers.OnlineUsersProvider>
</Providers.OnlineUsersProvider> </Providers.FileTreeOpenProvider>
</Providers.FileTreeOpenProvider> </Providers.ChatProvider>
</Providers.ChatProvider> </Providers.DetachCompileProvider>
</Providers.DetachCompileProvider> </Providers.LocalCompileProvider>
</Providers.LocalCompileProvider> </Providers.EditorManagerProvider>
</Providers.EditorManagerProvider> </Providers.ProjectSettingsProvider>
</Providers.ProjectSettingsProvider> </Providers.LayoutProvider>
</Providers.LayoutProvider> </Providers.RailProvider>
</Providers.PermissionsProvider> </Providers.PermissionsProvider>
</Providers.EditorProvider> </Providers.EditorProvider>
</Providers.DetachProvider> </Providers.DetachProvider>
@@ -21,6 +21,7 @@ import useEventListener from '@/shared/hooks/use-event-listener'
import { isSplitTestEnabled } from '@/utils/splitTestUtils' import { isSplitTestEnabled } from '@/utils/splitTestUtils'
import { isMac } from '@/shared/utils/os' import { isMac } from '@/shared/utils/os'
import { sendSearchEvent } from '@/features/event-tracking/search-events' import { sendSearchEvent } from '@/features/event-tracking/search-events'
import { useRailContext } from '@/features/ide-redesign/contexts/rail-context'
export type IdeLayout = 'sideBySide' | 'flat' export type IdeLayout = 'sideBySide' | 'flat'
export type IdeView = 'editor' | 'file' | 'pdf' | 'history' export type IdeView = 'editor' | 'file' | 'pdf' | 'history'
@@ -75,6 +76,8 @@ export const LayoutProvider: FC = ({ children }) => {
const [view, _setView] = useScopeValue<IdeView | null>('ui.view') const [view, _setView] = useScopeValue<IdeView | null>('ui.view')
const [openFile] = useScopeValue<BinaryFile | null>('openFile') const [openFile] = useScopeValue<BinaryFile | null>('openFile')
const historyToggleEmitter = useScopeEventEmitter('history:toggle', true) const historyToggleEmitter = useScopeEventEmitter('history:toggle', true)
const { isOpen: railIsOpen, setIsOpen: setRailIsOpen } = useRailContext()
const [prevRailIsOpen, setPrevRailIsOpen] = useState(railIsOpen)
const setView = useCallback( const setView = useCallback(
(value: IdeView | null) => { (value: IdeView | null) => {
@@ -84,6 +87,15 @@ export const LayoutProvider: FC = ({ children }) => {
historyToggleEmitter() historyToggleEmitter()
} }
if (value === 'history') {
setPrevRailIsOpen(railIsOpen)
setRailIsOpen(true)
}
if (oldValue === 'history') {
setRailIsOpen(prevRailIsOpen)
}
if (value === 'editor' && openFile) { if (value === 'editor' && openFile) {
// if a file is currently opened, ensure the view is 'file' instead of // if a file is currently opened, ensure the view is 'file' instead of
// 'editor' when the 'editor' view is requested. This is to ensure // 'editor' when the 'editor' view is requested. This is to ensure
@@ -95,7 +107,15 @@ export const LayoutProvider: FC = ({ children }) => {
return value return value
}) })
}, },
[_setView, openFile, historyToggleEmitter] [
_setView,
setRailIsOpen,
openFile,
historyToggleEmitter,
prevRailIsOpen,
setPrevRailIsOpen,
railIsOpen,
]
) )
// whether the chat pane is open // whether the chat pane is open