import React from 'react'; import AppearanceToggleDropdown from '@/components/appearance-dropdown'; import { User } from 'lucide-react'; import { useEventData } from '../hooks/useEventData'; import { useOptionalEventStats } from '../context/EventStatsContext'; import { useOptionalGuestIdentity } from '../context/GuestIdentityContext'; import { SettingsSheet } from './settings-sheet'; export default function Header({ slug, title = '' }: { slug?: string; title?: string }) { const statsContext = useOptionalEventStats(); const identity = useOptionalGuestIdentity(); if (!slug) { const guestName = identity?.name && identity?.hydrated ? identity.name : null; return (
{title}
{guestName && ( Hi {guestName} )}
); } const { event, loading: eventLoading, error: eventError } = useEventData(); const stats = statsContext && statsContext.slug === slug ? statsContext : undefined; const guestName = identity && identity.slug === slug && identity.hydrated && identity.name ? identity.name : null; if (eventLoading) { return (
Lade Event...
); } if (eventError || !event) { return (
Event nicht gefunden
); } const getEventAvatar = (event: any) => { if (event.type?.icon) { return (
{event.type.icon}
); } const getInitials = (name: string) => { const words = name.split(' '); if (words.length >= 2) { return `${words[0][0]}${words[1][0]}`.toUpperCase(); } return name.substring(0, 2).toUpperCase(); }; return (
{getInitials(event.name)}
); }; return (
{getEventAvatar(event)}
{event.name}
{guestName && ( Hi {guestName} )}
{stats && ( <> {stats.onlineGuests} online | {stats.tasksSolved} Aufgaben geloest )}
); } export {}