head
This commit is contained in:
parent
0ffe479c91
commit
cac5ea56ff
2 changed files with 25 additions and 40 deletions
|
|
@ -9,55 +9,33 @@ import type { Header } from '@/payload-types'
|
||||||
import { Logo } from '@/components/Logo/Logo'
|
import { Logo } from '@/components/Logo/Logo'
|
||||||
import { HeaderNav } from './Nav'
|
import { HeaderNav } from './Nav'
|
||||||
import { useThemeMode } from '@/hooks/useThemeMode'
|
import { useThemeMode } from '@/hooks/useThemeMode'
|
||||||
|
import { Container } from '@/components/ui/Container' // Import your custom container
|
||||||
|
|
||||||
interface HeaderClientProps {
|
// ... ToggleButton component remains the same ...
|
||||||
data: Header
|
|
||||||
}
|
|
||||||
|
|
||||||
function ToggleButton() {
|
|
||||||
const { isDark, toggle } = useThemeMode()
|
|
||||||
return (
|
|
||||||
<button
|
|
||||||
onClick={toggle}
|
|
||||||
className="flex items-center gap-2 rounded-full border px-3 py-1.5 text-xs transition-all"
|
|
||||||
style={{
|
|
||||||
border: isDark ? '1px solid rgba(255,255,255,0.2)' : '1px solid rgba(0,0,0,0.15)',
|
|
||||||
color: isDark ? 'rgba(255,255,255,0.7)' : 'rgba(0,0,0,0.6)',
|
|
||||||
background: 'transparent',
|
|
||||||
cursor: 'pointer',
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{isDark ? '☀ Light' : '☾ Dark'}
|
|
||||||
</button>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
export const HeaderClient: React.FC<HeaderClientProps> = ({ data }) => {
|
export const HeaderClient: React.FC<HeaderClientProps> = ({ data }) => {
|
||||||
const [theme, setTheme] = useState<string | null>(null)
|
const [theme, setTheme] = useState<string | null>(null)
|
||||||
const { headerTheme, setHeaderTheme } = useHeaderTheme()
|
const { headerTheme, setHeaderTheme } = useHeaderTheme()
|
||||||
const pathname = usePathname()
|
const pathname = usePathname()
|
||||||
|
|
||||||
useEffect(() => {
|
// ... useEffect hooks remain the same ...
|
||||||
setHeaderTheme(null)
|
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
||||||
}, [pathname])
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (headerTheme && headerTheme !== theme) setTheme(headerTheme)
|
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
||||||
}, [headerTheme])
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<header className="container relative z-20" {...(theme ? { 'data-theme': theme } : {})}>
|
<header
|
||||||
<div className="py-8 flex justify-between">
|
className="relative z-20 border-b border-foreground/8"
|
||||||
<Link href="/">
|
{...(theme ? { 'data-theme': theme } : {})}
|
||||||
<Logo loading="eager" priority="high" className="invert dark:invert-0" />
|
>
|
||||||
</Link>
|
<Container>
|
||||||
<div className="flex items-center gap-3">
|
<div className="py-8 flex justify-between items-center">
|
||||||
<HeaderNav data={data} />
|
<Link href="/">
|
||||||
<ToggleButton />
|
<Logo loading="eager" priority="high" className="invert dark:invert-0" />
|
||||||
|
</Link>
|
||||||
|
<div className="flex items-center gap-3">
|
||||||
|
<HeaderNav data={data} />
|
||||||
|
<ToggleButton />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</Container>
|
||||||
</header>
|
</header>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,16 @@
|
||||||
import { HeaderClient } from './Component.client'
|
import { HeaderClient } from './Component.client'
|
||||||
import { getCachedGlobal } from '@/utilities/getGlobals'
|
import { getCachedGlobal } from '@/utilities/getGlobals'
|
||||||
|
import { Container } from '@/components/ui/Container' // Adjust path as needed
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
|
|
||||||
export async function Header() {
|
export async function Header() {
|
||||||
const headerData = await getCachedGlobal('header', 1)()
|
const headerData = await getCachedGlobal('header', 1)()
|
||||||
|
|
||||||
return <HeaderClient data={headerData} />
|
return (
|
||||||
|
<header className="border-b border-foreground/8">
|
||||||
|
<Container>
|
||||||
|
<HeaderClient data={headerData} />
|
||||||
|
</Container>
|
||||||
|
</header>
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue