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 (
);
}
if (eventError || !event) {
return (
);
}
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 {}