| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 'use client'
- import React, { useState } from 'react'
- import { usePathname } from 'next/navigation'
- import s from './index.module.css'
- import { useEventEmitterContextContext } from '@/context/event-emitter'
- import classNames from '@/utils/classnames'
-
- type HeaderWrapperProps = {
- children: React.ReactNode
- }
-
- const HeaderWrapper = ({
- children,
- }: HeaderWrapperProps) => {
- const pathname = usePathname()
- const isBordered = ['/apps', '/datasets', '/datasets/create', '/tools'].includes(pathname)
- // // Check if the current path is a workflow canvas & fullscreen
- const inWorkflowCanvas = pathname.endsWith('/workflow')
- const workflowCanvasMaximize = localStorage.getItem('workflow-canvas-maximize') === 'true'
- const [hideHeader, setHideHeader] = useState(workflowCanvasMaximize)
- const { eventEmitter } = useEventEmitterContextContext()
-
- eventEmitter?.useSubscription((v: any) => {
- if (v?.type === 'workflow-canvas-maximize')
- setHideHeader(v.payload)
- })
-
- if (hideHeader && inWorkflowCanvas)
- return null
-
- return (
- <div className={classNames(
- 'sticky top-0 left-0 right-0 z-30 flex flex-col grow-0 shrink-0 basis-auto min-h-[56px]',
- s.header,
- isBordered ? 'border-b border-divider-regular' : '',
- )}
- >
- {children}
- </div>
- )
- }
- export default HeaderWrapper
|