femto-webapp/src/components/NavBar.tsx
2025-08-10 16:22:13 +02:00

35 lines
1 KiB
TypeScript

import { PropsWithChildren, ReactNode } from 'react'
import { Role, useUserStore } from '../app/user/user.ts'
import NavButton from './buttons/NavButton.tsx'
type NavBarProps = {
leftChildren?: ReactNode
}
export default function NavBar({ children }: PropsWithChildren<NavBarProps>) {
const user = useUserStore((state) => state.user)
const isSuperUser = user?.roles.includes(Role.SuperUser)
return (
<nav className={`w-full flex flex-row justify-between px-4 md:px-8 py-3`}>
<div className={`flex flex-row justify-start gap-4`}></div>
<div className={`flex flex-row justify-end gap-4`}>
{children}
{isSuperUser && <NavButton to={'/admin/codes'}>admin</NavButton>}
<SourceCodeLink />
</div>
</nav>
)
}
function SourceCodeLink() {
return (
<a
className={`size-6`}
href="https://git.botris.dev/botris.social"
target="_blank"
title={'source code'}
>
<img style={{ color: 'red' }} src="/forgejo-logo-primary.svg" alt="Forgejo Logo" />
</a>
)
}