"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"; interface ReviewSectionProps { restaurantId: string; } function StarDisplay({ rating }: { rating: number }) { const stars = []; for (let i = 1; i <= 5; i++) { if (rating >= i) { stars.push( ); } else if (rating >= i - 0.5) { stars.push( ); } else { stars.push( ); } } return {stars}; } function StarSelector({ value, onChange, }: { value: number; onChange: (v: number) => void; }) { return (
별점: {[0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5].map((v) => ( ))}
); } 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 (