'use client' import { useState } from 'react' import AddGuestBookEntryModal from '@/components/AddGuestBookEntryModal' import GuestBookList from '@/components/GuestBookList' import TableIcon from './icons/TableIcon' import GuestCardIcon from './icons/GuestCardIcon' import BulkUploadGuest from './BulkUploadGuest' import { useRouter } from 'next/navigation' interface GuestBookEntry { id: string fName: string lName: string side: string email?: string | null phone?: string | null address?: string | null notes?: string | null } export default function GuestBookPageClient({ entries, totalPages, currentPage, }: { entries: GuestBookEntry[] totalPages: number currentPage: number }) { const [isOpen, setIsOpen] = useState(false); const [view, setView] = useState<'CARD' | 'TABLE'>('TABLE') const router = useRouter() const handlePageChange = (page: number) => { router.push(`/guest-book?page=${page}`) } async function handleAddGuest(data: { fName: string lName: string email?: string phone?: string address?: string side: string notes?: string }) { try { const res = await fetch('/api/guestbook/add', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data), }) if (!res.ok) { const { message } = await res.json() throw new Error(message || 'Failed to add guest') } // Optionally: re-fetch entries or mutate state here } catch (err) { console.error('Error adding guest:', err) } } return (

Guest Book

{totalPages > 1 && (
{[...Array(totalPages)].map((_, idx) => { const pageNum = idx + 1 return ( ) })}
)} setIsOpen(false)} onSubmit={handleAddGuest} />
) }