"use client"; import { useState } from "react"; import { toast } from "sonner"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Label } from "@/components/ui/label"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Textarea } from "@/components/ui/textarea"; import { ReportReason, ReportService } from "@/services/report.service"; interface ReportDialogProps { contentId?: string; tagId?: string; open: boolean; onOpenChange: (open: boolean) => void; } export function ReportDialog({ contentId, tagId, open, onOpenChange, }: ReportDialogProps) { const [reason, setReason] = useState(ReportReason.INAPPROPRIATE); const [description, setDescription] = useState(""); const [isSubmitting, setIsSubmitting] = useState(false); const handleSubmit = async () => { setIsSubmitting(true); try { await ReportService.create({ contentId, tagId, reason, description, }); toast.success( "Signalement envoyé avec succès. Merci de nous aider à maintenir la communauté sûre.", ); onOpenChange(false); setDescription(""); } catch (_error) { toast.error("Erreur lors de l'envoi du signalement."); } finally { setIsSubmitting(false); } }; return ( Signaler le contenu Pourquoi signalez-vous ce contenu ? Un modérateur examinera votre demande.