/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/ 'use client'; import { AbstractApi } from '@/app/api/abstract-api'; import { Guest, GuestSerializer } from '@/app/lib/guest'; import { EnvelopeIcon, FunnelIcon, PencilIcon, TrashIcon, UserPlusIcon } from '@heroicons/react/24/outline'; import clsx from 'clsx'; import { useState } from 'react'; import TableOfContents from '../components/table-of-contents'; export default function guestsTable({ guests, onUpdate, onEdit }: { guests: Guest[], onUpdate: () => void, onEdit: (guest: Guest) => void }) { const api = new AbstractApi(); const serializer = new GuestSerializer(); const [invitationId, setInvitationId] = useState(undefined); const [selecting, setSelecting] = useState(false); function toggleInvitationId(id: string | undefined) { console.log('toggleInvitationId', id, invitationId); if (id === invitationId) { setInvitationId(undefined); } else { setInvitationId(id); } console.log('invitationId', invitationId); } return ( ( {guest.name} {guest.group_name} {guest.status} { guest.invitationId &&
{!selecting && toggleInvitationId(guest?.invitationId)} />} { invitationId === guest.invitationId && !selecting && setSelecting(!selecting)}/>} { selecting && invitationId !== guest.invitationId && }
}
{ api.destroy(serializer, guest, onUpdate) }} /> onEdit(guest)} />
)} /> ); }