'use client'; import { useState } from 'react'; import styles from './FeedbackWidget.module.css'; export default function FeedbackWidget({ imageHash, predictedId, top5, isOodScreen, onFeedbackSuccess }) { const [feedbackState, setFeedbackState] = useState('idle'); const [errorMessage, setErrorMessage] = useState(''); const sendFeedback = async (isCorrect, userCorrectionId = null) => { setFeedbackState('submitting'); try { const response = await fetch('/api/feedback', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ image_hash: imageHash, predicted_id: predictedId, is_correct: isCorrect, user_correction_id: userCorrectionId, is_ood_screen: isOodScreen || false }) }); if (!response.ok) { if (response.status === 429) { throw new Error("Muitas requisições. Tente novamente mais tarde."); } throw new Error("Erro ao salvar feedback"); } setFeedbackState('success'); if (onFeedbackSuccess) { onFeedbackSuccess(isCorrect); } setTimeout(() => { setFeedbackState('hidden'); }, 3000); } catch (error) { setFeedbackState('error'); setErrorMessage(error.message); setTimeout(() => setFeedbackState('idle'), 4000); } }; if (feedbackState === 'hidden') { return null; } if (feedbackState === 'success') { return (