'use client'; import { Card } from '@/components/ui/card'; import Logo from '@/components/misc/logo'; import { Label } from '@/components/ui/label'; import Link from 'next/link'; import zod from 'zod/v4'; import { EventSchema } from '@/app/api/event/validation'; import { useSession } from 'next-auth/react'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '../ui/select'; import { usePatchApiEventEventIDParticipantUser } from '@/generated/api/event-participant/event-participant'; type EventListEntryProps = zod.output; export default function EventListEntry({ title, id, start_time, end_time, location, participants, }: EventListEntryProps) { const session = useSession(); const updateAttendance = usePatchApiEventEventIDParticipantUser(); const formatDate = (isoString?: string) => { if (!isoString) return '-'; return new Date(isoString).toLocaleDateString(); }; const formatTime = (isoString?: string) => { if (!isoString) return '-'; return new Date(isoString).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', }); }; return (

{title}

{location && (
)} {participants && participants.some( (p) => p.user.id === session.data?.user?.id, ) && (
)}
); }