'use client'; import React, { useState } from 'react'; import Logo from '@/components/misc/logo'; import { Card, CardContent, CardHeader } from '@/components/ui/card'; import { Label } from '@/components/ui/label'; import { useDeleteApiEventEventID, useGetApiEventEventID, } from '@/generated/api/event/event'; import { useGetApiUserMe } from '@/generated/api/user/user'; import { RedirectButton } from '@/components/buttons/redirect-button'; import { useSession } from 'next-auth/react'; import ParticipantListEntry from '@/components/custom-ui/participant-list-entry'; import { useParams, useRouter } from 'next/navigation'; import { Button } from '@/components/ui/button'; import { ToastInner } from '@/components/misc/toast-inner'; import { toast } from 'sonner'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from '@/components/ui/dialog'; export default function ShowEvent() { const session = useSession(); const router = useRouter(); const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); const { eventID: eventID } = useParams<{ eventID: string }>(); // Fetch event data const { data: eventData, isLoading, error } = useGetApiEventEventID(eventID); const { data: userData, isLoading: userLoading } = useGetApiUserMe(); const deleteEvent = useDeleteApiEventEventID(); if (isLoading || userLoading) { return (
Loading...
); } if (error || !eventData?.data?.event) { return (
Error loading event.
); } const event = eventData.data.event; const organiserName = userData?.data.user?.name || 'Unknown User'; // Format dates & times for display 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 (

{event.title || 'Untitled Event'}

{' '}
{event.participants?.map((user) => ( ))}
{session.data?.user?.id === event.organizer.id ? ( Delete Event Are you sure you want to delete the event “ {event.title}”? This action cannot be undone. ) : null}
{session.data?.user?.id === event.organizer.id ? ( ) : null}
); }