'use client' import type { EventEmitterValue } from '@/context/event-emitter' import { cn } from '@langgenius/dify-ui/cn' import * as React from 'react' import { useState } from 'react' import { useEventEmitterContextContext } from '@/context/event-emitter' import { useLocalStorage } from '@/hooks/use-local-storage' import { usePathname } from '@/next/navigation' import s from './index.module.css' type HeaderWrapperProps = { children: React.ReactNode } const HeaderWrapper = ({ children, }: HeaderWrapperProps) => { const pathname = usePathname() const isBordered = ['/apps', '/datasets/create', '/tools'].includes(pathname) // Check if the current path is a workflow canvas & fullscreen const inWorkflowCanvas = pathname.endsWith('/workflow') const isPipelineCanvas = pathname.endsWith('/pipeline') const [storedHideHeader] = useLocalStorage('workflow-canvas-maximize', false) const [eventHideHeader, setEventHideHeader] = useState(null) const hideHeader = eventHideHeader ?? storedHideHeader const { eventEmitter } = useEventEmitterContextContext() eventEmitter?.useSubscription((value: EventEmitterValue) => { if (typeof value === 'object' && value.type === 'workflow-canvas-maximize' && typeof value.payload === 'boolean') setEventHideHeader(value.payload) }) return (
{children}
) } export default HeaderWrapper