'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 { 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 deleteEvent = useDeleteApiEventEventID();
if (isLoading) {
return (
Loading...
);
}
if (error || !eventData?.data?.event) {
return (
Error loading event.
);
}
// 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 (
{eventData.data.event.title || 'Untitled Event'}
{' '}
{eventData.data.event.participants?.map((user) => (
))}
{session.data?.user?.id ===
eventData.data.event.organizer.id ? (
) : null}
{session.data?.user?.id ===
eventData.data.event.organizer.id ? (
) : null}
);
}