"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import Image from "next/image"; import { confirmParticipantPaymentAction } from "@/features/booking/actions"; export interface PaymentPendingParticipant { id: string; user: { name: string; image: string | null }; /** PENDING atau CONFIRMED (join) — keduanya bisa sudah tandai bayar */ joinStatus: "PENDING" | "CONFIRMED"; } interface OrganizerPaymentQueueProps { tripId: string; items: PaymentPendingParticipant[]; } export function OrganizerPaymentQueue({ tripId, items, }: OrganizerPaymentQueueProps) { const router = useRouter(); const [loadingId, setLoadingId] = useState(null); const [error, setError] = useState(""); async function confirm(participantId: string) { setLoadingId(participantId); setError(""); const result = await confirmParticipantPaymentAction(tripId, participantId); setLoadingId(null); if (result.error) { setError(result.error); return; } router.refresh(); } return (

Konfirmasi pembayaran ({items.length})

Peserta sudah menandai pembayaran. Cek rekening atau bukti transfer, lalu konfirmasi.

{error && (

{error}

)}
); }