62 lines
1.6 KiB
TypeScript
Raw Normal View History

import { usePathname } from 'next/navigation'
import {
useWorkflowMode,
} from '../hooks'
2025-04-18 13:59:12 +08:00
import type { HeaderInNormalProps } from './header-in-normal'
import HeaderInNormal from './header-in-normal'
2025-05-08 15:31:37 +08:00
import type { HeaderInHistoryProps } from './header-in-view-history'
2025-04-18 13:59:12 +08:00
import HeaderInHistory from './header-in-view-history'
import type { HeaderInRestoringProps } from './header-in-restoring'
import HeaderInRestoring from './header-in-restoring'
import { useStore } from '../store'
2025-04-18 13:59:12 +08:00
export type HeaderProps = {
normal?: HeaderInNormalProps
2025-05-08 15:31:37 +08:00
viewHistory?: HeaderInHistoryProps
2025-04-18 13:59:12 +08:00
restoring?: HeaderInRestoringProps
}
const Header = ({
normal: normalProps,
2025-05-08 15:31:37 +08:00
viewHistory: viewHistoryProps,
2025-04-18 13:59:12 +08:00
restoring: restoringProps,
}: HeaderProps) => {
const pathname = usePathname()
const inWorkflowCanvas = pathname.endsWith('/workflow')
const {
normal,
restoring,
viewHistory,
} = useWorkflowMode()
const maximizeCanvas = useStore(s => s.maximizeCanvas)
return (
<div
className='absolute left-0 top-0 z-10 flex h-14 w-full items-center justify-between bg-mask-top2bottom-gray-50-to-transparent px-3'
>
{inWorkflowCanvas && maximizeCanvas && <div className='h-14 w-[52px]' />}
{
normal && (
2025-04-18 13:59:12 +08:00
<HeaderInNormal
{...normalProps}
/>
)
}
{
viewHistory && (
2025-05-08 15:31:37 +08:00
<HeaderInHistory
{...viewHistoryProps}
/>
)
}
{
restoring && (
2025-04-18 13:59:12 +08:00
<HeaderInRestoring
{...restoringProps}
/>
)
}
</div>
)
}
2025-04-18 13:59:12 +08:00
export default Header