"use client"; import { useState, useTransition } from "react"; import Card from "@/components/ui/Card"; import Button from "@/components/ui/Button"; import { acceptRequest, rejectRequest, } from "@/actions/houses/requests"; import Alert from "@/components/ui/Alert"; interface Request { id: string; requester: { id: string; username: string; avatar: string | null; }; status: string; createdAt: string; } interface RequestListProps { requests: Request[]; onUpdate?: () => void; } export default function RequestList({ requests, onUpdate, }: RequestListProps) { const [isPending, startTransition] = useTransition(); const [error, setError] = useState(null); const handleAccept = (requestId: string) => { setError(null); startTransition(async () => { const result = await acceptRequest(requestId); if (result.success) { onUpdate?.(); } else { setError(result.error || "Erreur lors de l'acceptation"); } }); }; const handleReject = (requestId: string) => { setError(null); startTransition(async () => { const result = await rejectRequest(requestId); if (result.success) { onUpdate?.(); } else { setError(result.error || "Erreur lors du refus"); } }); }; if (requests.length === 0) { return (

Aucune demande en attente

); } return (
{error && {error}} {requests.map((request) => (

{request.requester.username}

souhaite rejoindre votre maison

{request.status === "PENDING" && (
)} {request.status === "ACCEPTED" && ( ✓ Acceptée )} {request.status === "REJECTED" && ( ✗ Refusée )}
))}
); }