brf/client/public/components/current_user.tsx
2026-06-15 14:09:28 +02:00

39 lines
1.0 KiB
TypeScript

import { h, type FunctionComponent } from 'preact'
import { Show } from '@preact/signals/utils'
import { useComputed } from '@preact/signals'
import cn from 'classnames'
import { useAuth } from '../../shared/contexts/auth.tsx'
import s from './current_user.module.scss'
const CurrentUser: FunctionComponent<{ className?: string }> = ({ className }) => {
const { user } = useAuth()
const noUser = useComputed(() => !user.value)
return (
<div className={cn(s.base, className)}>
<Show when={user}>
<div className={s.email}>{user.value?.email}</div>
<div className={s.links}>
<a href='/auth/logout' target='_parent'>
Logout
</a>
</div>
</Show>
<Show when={noUser}>
<div className={cn(s.base, className)}>
<p>You are not logged in</p>
<div className={s.links}>
<a href='/login'>Login</a>
<a href='/register'>Register</a>
</div>
</div>
</Show>
</div>
)
}
export default CurrentUser