Merge pull request #24862 from overleaf/dp-check-logs

Create openTab utility in rail-context to open rail at specific tab

GitOrigin-RevId: bfac2597fdd66db6dd8280873be97096f2b812dc
This commit is contained in:
David
2025-04-15 09:13:25 +01:00
committed by Copybot
parent b9481962ea
commit cd4880d11e
4 changed files with 19 additions and 22 deletions

View File

@@ -11,7 +11,7 @@ function PdfErrorState() {
// TODO ide-redesign-cleanup: rename showLogs to something else and check usages
const { showLogs } = useCompileContext()
const { t } = useTranslation()
const { setSelectedTab: setSelectedRailTab } = useRailContext()
const { openTab: openRailTab } = useRailContext()
const newEditor = useIsNewEditorEnabled()
if (!newEditor || (!loadingError && !showLogs)) {
@@ -34,7 +34,7 @@ function PdfErrorState() {
variant="secondary"
size="sm"
onClick={() => {
setSelectedRailTab('errors')
openRailTab('errors')
}}
>
{t('check_logs')}

View File

@@ -79,7 +79,7 @@ export const RailLayout = () => {
const {
activeModal,
selectedTab,
setSelectedTab,
openTab,
isOpen,
setIsOpen,
panelRef,
@@ -162,11 +162,10 @@ export const RailLayout = () => {
return
}
// Change the selected tab and make sure it's open
setSelectedTab((key ?? 'file-tree') as RailTabKey)
setIsOpen(true)
openTab((key ?? 'file-tree') as RailTabKey)
}
},
[setSelectedTab, selectedTab, setIsOpen, togglePane, railTabs]
[openTab, togglePane, selectedTab, railTabs]
)
const isReviewPanelOpen = selectedTab === 'review-panel'

View File

@@ -24,7 +24,6 @@ export type RailModalKey = 'keyboard-shortcuts' | 'contact-us' | 'dictionary'
const RailContext = createContext<
| {
selectedTab: RailTabKey
setSelectedTab: Dispatch<SetStateAction<RailTabKey>>
isOpen: boolean
setIsOpen: Dispatch<SetStateAction<boolean>>
panelRef: React.RefObject<ImperativePanelHandle>
@@ -35,6 +34,7 @@ const RailContext = createContext<
setResizing: Dispatch<SetStateAction<boolean>>
activeModal: RailModalKey | null
setActiveModal: Dispatch<SetStateAction<RailModalKey | null>>
openTab: (tab: RailTabKey) => void
}
| undefined
>(undefined)
@@ -69,10 +69,17 @@ export const RailProvider: FC = ({ children }) => {
// since it is responsible for opening the initial document.
const [selectedTab, setSelectedTab] = useState<RailTabKey>('file-tree')
const openTab = useCallback(
(tab: RailTabKey) => {
setSelectedTab(tab)
setIsOpen(true)
},
[setIsOpen, setSelectedTab]
)
const value = useMemo(
() => ({
selectedTab,
setSelectedTab,
isOpen,
setIsOpen,
panelRef,
@@ -83,10 +90,10 @@ export const RailProvider: FC = ({ children }) => {
setResizing,
activeModal,
setActiveModal,
openTab,
}),
[
selectedTab,
setSelectedTab,
isOpen,
setIsOpen,
panelRef,
@@ -97,6 +104,7 @@ export const RailProvider: FC = ({ children }) => {
setResizing,
activeModal,
setActiveModal,
openTab,
]
)

View File

@@ -51,8 +51,7 @@ const ReviewTooltipMenu: FC = () => {
const [show, setShow] = useState(true)
const { setView } = useReviewPanelViewActionsContext()
const { setReviewPanelOpen } = useLayoutContext()
const { setIsOpen: setRailIsOpen, setSelectedTab: setSelectedRailTab } =
useRailContext()
const { openTab: openRailTab } = useRailContext()
const newEditor = useIsNewEditorEnabled()
const tooltipState = state.field(reviewTooltipStateField, false)?.tooltip
@@ -71,8 +70,7 @@ const ReviewTooltipMenu: FC = () => {
}
if (newEditor) {
setSelectedRailTab('review-panel')
setRailIsOpen(true)
openRailTab('review-panel')
} else {
setReviewPanelOpen(true)
}
@@ -87,15 +85,7 @@ const ReviewTooltipMenu: FC = () => {
view.dispatch({ effects })
setShow(false)
}, [
setReviewPanelOpen,
setView,
setShow,
view,
setSelectedRailTab,
setRailIsOpen,
newEditor,
])
}, [setReviewPanelOpen, setView, setShow, view, openRailTab, newEditor])
useEventListener('add-new-review-comment', addComment)