封装 Header 和 Navbar 组件,调整用户界面

This commit is contained in:
2025-04-25 16:24:04 +08:00
parent 8b742bdc34
commit 5c88cd7f32
14 changed files with 244 additions and 94 deletions

View File

@@ -0,0 +1,42 @@
'use client'
import {PanelLeftCloseIcon, PanelLeftOpenIcon} from 'lucide-react'
import {Button} from '@/components/ui/button'
import Profile from './profile'
import {useLayoutStore} from '@/components/providers/StoreProvider'
import {merge} from '@/lib/utils'
export type HeaderProps = {}
export default function Header(props: HeaderProps) {
const navbar = useLayoutStore(store => store.navbar)
const toggleNavbar = useLayoutStore(store => store.toggleNavbar)
return (
<header className={merge(
`flex-none h-16`,
`flex items-stretch`,
)}>
{/* left */}
<div className={`flex-auto flex items-center gap-2`}>
<Button
theme="ghost"
className="w-9 h-9"
onClick={toggleNavbar}>
{navbar
? <PanelLeftCloseIcon/>
: <PanelLeftOpenIcon/>
}
</Button>
<span>
</span>
</div>
{/* right */}
<div className={`flex-none flex items-center justify-end pr-4`}>
<Profile/>
</div>
</header>
)
}