Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

index.tsx 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { usePathname } from 'next/navigation'
  2. import {
  3. useWorkflowMode,
  4. } from '../hooks'
  5. import type { HeaderInNormalProps } from './header-in-normal'
  6. import HeaderInNormal from './header-in-normal'
  7. import type { HeaderInHistoryProps } from './header-in-view-history'
  8. import type { HeaderInRestoringProps } from './header-in-restoring'
  9. import { useStore } from '../store'
  10. import dynamic from 'next/dynamic'
  11. const HeaderInHistory = dynamic(() => import('./header-in-view-history'), {
  12. ssr: false,
  13. })
  14. const HeaderInRestoring = dynamic(() => import('./header-in-restoring'), {
  15. ssr: false,
  16. })
  17. export type HeaderProps = {
  18. normal?: HeaderInNormalProps
  19. viewHistory?: HeaderInHistoryProps
  20. restoring?: HeaderInRestoringProps
  21. }
  22. const Header = ({
  23. normal: normalProps,
  24. viewHistory: viewHistoryProps,
  25. restoring: restoringProps,
  26. }: HeaderProps) => {
  27. const pathname = usePathname()
  28. const inWorkflowCanvas = pathname.endsWith('/workflow')
  29. const isPipelineCanvas = pathname.endsWith('/pipeline')
  30. const {
  31. normal,
  32. restoring,
  33. viewHistory,
  34. } = useWorkflowMode()
  35. const maximizeCanvas = useStore(s => s.maximizeCanvas)
  36. return (
  37. <div
  38. className='absolute left-0 top-7 z-10 flex h-0 w-full items-center justify-between bg-mask-top2bottom-gray-50-to-transparent px-3'
  39. >
  40. {(inWorkflowCanvas || isPipelineCanvas) && maximizeCanvas && <div className='h-14 w-[52px]' />}
  41. {
  42. normal && (
  43. <HeaderInNormal
  44. {...normalProps}
  45. />
  46. )
  47. }
  48. {
  49. viewHistory && (
  50. <HeaderInHistory
  51. {...viewHistoryProps}
  52. />
  53. )
  54. }
  55. {
  56. restoring && (
  57. <HeaderInRestoring
  58. {...restoringProps}
  59. />
  60. )
  61. }
  62. </div>
  63. )
  64. }
  65. export default Header