_header.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. 'use client'
  2. import React from 'react'
  3. import dynamic from 'next/dynamic'
  4. import { useGlobalPublicStore } from '@/context/global-public-context'
  5. // Avoid rendering the logo and theme selector on the server
  6. const DifyLogo = dynamic(() => import('@/app/components/base/logo/dify-logo'), {
  7. ssr: false,
  8. loading: () => <div className='h-7 w-16 bg-transparent' />,
  9. })
  10. const ThemeSelector = dynamic(() => import('@/app/components/base/theme-selector'), {
  11. ssr: false,
  12. loading: () => <div className='size-8 bg-transparent' />,
  13. })
  14. const Header = () => {
  15. const systemFeatures = useGlobalPublicStore(s => s.systemFeatures)
  16. return (
  17. <div className='flex w-full items-center justify-between p-6'>
  18. {systemFeatures.branding.enabled && systemFeatures.branding.login_page_logo
  19. ? <img
  20. src={systemFeatures.branding.login_page_logo}
  21. className='block h-7 w-auto object-contain'
  22. alt='logo'
  23. />
  24. : <DifyLogo size='large' />}
  25. <div className='flex items-center gap-1'>
  26. {/* zlwu */}
  27. {/* <LocaleSigninSelect
  28. value={locale}
  29. items={languages.filter(item => item.supported)}
  30. onChange={(value) => {
  31. setLocaleOnClient(value as Locale)
  32. }}
  33. />
  34. <Divider type='vertical' className='mx-0 ml-2 h-4' /> */}
  35. <ThemeSelector />
  36. </div>
  37. </div>
  38. )
  39. }
  40. export default Header