"use client"; import { useState } from "react"; import { Loader2, Check, X } from "lucide-react"; import { toast } from "@/lib/toast"; type Recommendation = { recommendation: { id: string; recommendationText: string; activityPlan: string; dietPlan: string; createdAt: Date; }; user: { firstName: string; lastName: string; }; }; export function RecommendationList({ initialRecommendations, }: { initialRecommendations: Recommendation[]; }) { const [recommendations, setRecommendations] = useState( initialRecommendations, ); const [processingId, setProcessingId] = useState(null); const handleAction = async (id: string, status: "approved" | "rejected") => { setProcessingId(id); try { const res = await fetch("/api/recommendations/approve", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ recommendationId: id, status, approvedBy: "admin_placeholder", // In real app, get from auth context }), }); if (!res.ok) { toast.error("Failed to update status"); } else { toast.success( `Recommendation ${status === "approved" ? "approved" : "rejected"}`, ); setRecommendations((prev) => prev.filter((item) => item.recommendation.id !== id), ); } } catch (error) { console.error(error); toast.error("Error processing request"); } finally { setProcessingId(null); } }; if (recommendations.length === 0) { return

No pending recommendations.

; } return ( ); }