index.tsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. 'use client'
  2. import Link from 'next/link'
  3. import AccountDropdown from './account-dropdown'
  4. import AppNav from './app-nav'
  5. import DatasetNav from './dataset-nav'
  6. import EnvNav from './env-nav'
  7. import ExploreNav from './explore-nav'
  8. import GithubStar from './github-star'
  9. import PluginNav from './plugin-nav'
  10. import s from './index.module.css'
  11. import { WorkspaceProvider } from '@/context/workspace-context'
  12. import { useAppContext } from '@/context/app-context'
  13. const navClassName = `
  14. flex items-center relative mr-3 px-3 h-8 rounded-xl
  15. font-medium text-sm
  16. cursor-pointer
  17. `
  18. const Header = () => {
  19. const { isCurrentWorkspaceManager } = useAppContext()
  20. return (
  21. <>
  22. <div className='flex items-center'>
  23. <Link href="/apps" className='flex items-center mr-4'>
  24. <div className={s.logo} />
  25. </Link>
  26. {/* @ts-expect-error Async Server Component */}
  27. <GithubStar />
  28. </div>
  29. <div className='flex items-center'>
  30. <ExploreNav className={navClassName} />
  31. <AppNav />
  32. <PluginNav className={navClassName} />
  33. {isCurrentWorkspaceManager && <DatasetNav />}
  34. </div>
  35. <div className='flex items-center flex-shrink-0'>
  36. <EnvNav />
  37. <WorkspaceProvider>
  38. <AccountDropdown />
  39. </WorkspaceProvider>
  40. </div>
  41. </>
  42. )
  43. }
  44. export default Header