"use client"; import { useCallback, useEffect, useState } from "react"; import { api } from "@/lib/api"; import type { Review } from "@/lib/api"; import { useAuth } from "@/lib/auth-context"; import Stars from "@/components/Stars"; interface ReviewSectionProps { restaurantId: string; } function StarSelector({ value, onChange, }: { value: number; onChange: (v: number) => void; }) { return (
별점: {[1, 2, 3, 4, 5].map((v) => { const isCurrent = value === v || value === v - 0.5; const nextVal = value === v ? v - 0.5 : v; return ( ); })} {value > 0 && {value}}
); } function ReviewForm({ initialRating = 3, initialText = "", initialDate = "", onSubmit, onCancel, submitLabel, }: { initialRating?: number; initialText?: string; initialDate?: string; onSubmit: (data: { rating: number; review_text?: string; visited_at?: string; }) => Promise; onCancel: () => void; submitLabel: string; }) { const [rating, setRating] = useState(initialRating); const [text, setText] = useState(initialText); const [visitedAt, setVisitedAt] = useState(initialDate); const [submitting, setSubmitting] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setSubmitting(true); try { await onSubmit({ rating, review_text: text || undefined, visited_at: visitedAt || undefined, }); } finally { setSubmitting(false); } }; return (