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 = ({