2023-07-27 18:59:40 -04:00
|
|
|
import { Link } from 'react-router-dom'
|
2023-07-13 07:22:08 -04:00
|
|
|
import { Toolbar } from '../Toolbar'
|
2023-07-27 18:59:40 -04:00
|
|
|
import { useStore } from '../useStore'
|
|
|
|
import UserSidebarMenu from './UserSidebarMenu'
|
2023-07-13 07:22:08 -04:00
|
|
|
|
|
|
|
interface AppHeaderProps extends React.PropsWithChildren {
|
|
|
|
showToolbar?: boolean
|
|
|
|
}
|
|
|
|
|
|
|
|
export const AppHeader = ({ showToolbar = true, children }: AppHeaderProps) => {
|
2023-07-27 18:59:40 -04:00
|
|
|
const { user } = useStore((s) => ({
|
|
|
|
user: s.user,
|
|
|
|
}))
|
|
|
|
|
2023-07-13 07:22:08 -04:00
|
|
|
return (
|
2023-07-31 06:33:10 -04:00
|
|
|
<header className="py-1 px-5 bg-chalkboard-10 dark:bg-chalkboard-100 border-b dark:border-b-2 border-chalkboard-30 dark:border-chalkboard-70 flex justify-between items-center">
|
2023-07-27 18:59:40 -04:00
|
|
|
<Link to="/">
|
2023-07-13 07:22:08 -04:00
|
|
|
<img
|
|
|
|
src="/kitt-arcade-winking.svg"
|
|
|
|
alt="KittyCAD App"
|
|
|
|
className="h-9 w-auto"
|
|
|
|
/>
|
|
|
|
<span className="sr-only">KittyCAD App</span>
|
2023-07-27 18:59:40 -04:00
|
|
|
</Link>
|
2023-07-13 07:22:08 -04:00
|
|
|
{/* Toolbar if the context deems it */}
|
|
|
|
{showToolbar && (
|
|
|
|
<div className="max-w-4xl">
|
|
|
|
<Toolbar />
|
|
|
|
</div>
|
|
|
|
)}
|
2023-07-27 18:59:40 -04:00
|
|
|
{/* If there are children, show them, otherwise show User menu */}
|
|
|
|
{children || <UserSidebarMenu user={user} />}
|
2023-07-13 07:22:08 -04:00
|
|
|
</header>
|
|
|
|
)
|
|
|
|
}
|