import { useState } from "react"; import { Star, Send } from "lucide-react"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { Textarea } from "@/components/ui/textarea"; import { useTranslations } from "next-intl"; interface ReviewModalProps { open: boolean; onOpenChange: (open: boolean) => void; onSubmit: (rating: number, text: string) => Promise; isSubmitting: boolean; } export function ReviewModal({ open, onOpenChange, onSubmit, isSubmitting, }: ReviewModalProps) { const [rating, setRating] = useState(0); const [text, setText] = useState(""); const [hoveredStar, setHoveredStar] = useState(0); const t = useTranslations(); const handleClose = () => { onOpenChange(false); setRating(0); setText(""); setHoveredStar(0); }; const handleSubmit = async () => { await onSubmit(rating, text); handleClose(); }; const renderStars = () => { return (
{[1, 2, 3, 4, 5].map((star) => ( setRating(star)} onMouseEnter={() => setHoveredStar(star)} onMouseLeave={() => setHoveredStar(0)} /> ))}
); }; return ( {t("write_review")} {t("share_experience")}
{renderStars()}