Full refactor to Typescript

This commit is contained in:
2022-11-17 19:19:33 +01:00
parent de3f10b3ee
commit ffd3c99292
19 changed files with 180 additions and 95 deletions
+46
View File
@@ -0,0 +1,46 @@
import { Link } from 'preact-router/match'
import { isAdministrator, User, UserRole } from '../../shared/model'
const ROLE_LABEL: Record<UserRole, string> = {
['admin']: 'Admin',
['moderator']: 'Moderatore',
['student']: 'Studente',
}
type Props = {
user?: User | null
noLogin?: boolean
}
export const Header = ({ user, noLogin }: Props) => (
<header>
<div class="logo">
<a href="/">PHC / Problemi</a>
</div>
<nav>
{user ? (
<>
{isAdministrator(user.role) && (
<div class="nav-item">
<Link activeClassName="active" href="/admin">
Pannello Admin
</Link>
</div>
)}
<div class="nav-item">
<Link activeClassName="active" href="/profile">
@{user.id}
{isAdministrator(user.role) && <> ({ROLE_LABEL[user.role]})</>}
</Link>
</div>
</>
) : (
!noLogin && (
<div class="nav-item">
<Link href="/login">Login</Link>
</div>
)
)}
</nav>
</header>
)