"use client" import type React from "react" import { useState } from "react" import { Button } from "./ui/button" import { Textarea } from "./ui/textarea" import { Label } from "./ui/label" import { Star } from 'lucide-react' import { useAuth } from "@/contexts/auth-context" import Link from "next/link" interface ReviewFormProps { productId: number } export function ReviewForm({ productId }: ReviewFormProps) { const [rating, setRating] = useState(0) const [comment, setComment] = useState("") const [isSubmitting, setIsSubmitting] = useState(false) const { isLoggedIn, user } = useAuth() const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setIsSubmitting(true) try { // Добавляем console.log для отладки console.log('Submitting review with data:', { productId, rating, comment, username: user?.name || 'Anonymous' }); const reviewData = { product_id: productId, username: user?.name || "Anonymous", rating: rating, comment: comment } const response = await fetch(`http://localhost:8080/product/${productId}/reviews`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(reviewData) }) // Добавляем console.log для отладки ответа console.log('Response status:', response.status); const responseData = await response.json(); console.log('Response data:', responseData); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } // Очищаем форму после успешной отправки setRating(0) setComment("") alert("Отзыв успешно добавлен!") // Перезагружаем страницу для отображения нового отзыва window.location.reload() } catch (error) { console.error("Error submitting review:", error) alert("Произошла ошибка при отправке отзыва. Пожалуйста, попробуйте еще раз.") } finally { setIsSubmitting(false) } } if (!isLoggedIn) { return (
Чтобы оставить отзыв, пожалуйста,{" "} войдите в систему .
) } return ( ) }