diff --git a/web/app/components/main-nav/__tests__/layout.spec.tsx b/web/app/components/main-nav/__tests__/layout.spec.tsx
index 41b4a7a928..f4f8efa66e 100644
--- a/web/app/components/main-nav/__tests__/layout.spec.tsx
+++ b/web/app/components/main-nav/__tests__/layout.spec.tsx
@@ -68,12 +68,30 @@ describe('MainNavLayout', () => {
expect(screen.queryByTestId('desktop-header')).not.toBeInTheDocument()
})
- it('hides the desktop main nav on fullscreen workflow canvases', () => {
- mockPathname = '/apps/app-1/workflow'
+ it('hides the desktop main nav on fullscreen app workflow canvases', () => {
+ mockPathname = '/app/app-1/workflow'
localStorage.setItem('workflow-canvas-maximize', 'true')
render(content
)
expect(screen.getByTestId('main-nav')).toHaveClass('hidden')
})
+
+ it('hides the desktop main nav on fullscreen dataset pipeline canvases', () => {
+ mockPathname = '/datasets/dataset-1/pipeline'
+ localStorage.setItem('workflow-canvas-maximize', 'true')
+
+ render(content
)
+
+ expect(screen.getByTestId('main-nav')).toHaveClass('hidden')
+ })
+
+ it('keeps the main nav visible on the integrations workflow tool page', () => {
+ mockPathname = '/integrations/tools/workflow'
+ localStorage.setItem('workflow-canvas-maximize', 'true')
+
+ render(content
)
+
+ expect(screen.getByTestId('main-nav')).not.toHaveClass('hidden')
+ })
})
diff --git a/web/app/components/main-nav/layout.tsx b/web/app/components/main-nav/layout.tsx
index c6f081aa7a..6dde2a0f6b 100644
--- a/web/app/components/main-nav/layout.tsx
+++ b/web/app/components/main-nav/layout.tsx
@@ -13,12 +13,16 @@ type MainNavLayoutProps = {
children: ReactNode
}
+const isCanvasFullscreenPath = (pathname: string) => {
+ return /^\/app\/[^/]+\/workflow$/.test(pathname)
+ || /^\/datasets\/[^/]+\/pipeline$/.test(pathname)
+}
+
const MainNavLayout = ({
children,
}: MainNavLayoutProps) => {
const pathname = usePathname()
- const inWorkflowCanvas = pathname.endsWith('/workflow')
- const isPipelineCanvas = pathname.endsWith('/pipeline')
+ const inCanvasFullscreenPath = isCanvasFullscreenPath(pathname)
const [hideMainNav, setHideMainNav] = useState(() => (
globalThis.localStorage?.getItem('workflow-canvas-maximize') === 'true'
))
@@ -34,7 +38,7 @@ const MainNavLayout = ({