import { useState } from 'react' const STAR_HINTS = ['', 'Poor 😞', 'Fair 😐', 'Good 🙂', 'Great 😊', 'Excellent 🤩'] export default function FeedbackModal({ onSubmit, onClose }) { const [rating, setRating] = useState(0) const [hover, setHover] = useState(0) const [cat, setCat] = useState('general') const [text, setText] = useState('') const [err, setErr] = useState('') const [done, setDone] = useState(false) const [loading, setLoading] = useState(false) const handleSubmit = async () => { if (!rating) return setErr('Please select a star rating.') if (!text.trim()) return setErr('Please write a short message.') setLoading(true) try { await onSubmit({ rating, category: cat, message: text.trim() }) setDone(true) } catch (e) { setErr(e.message || 'Failed to submit feedback') } finally { setLoading(false) } } if (done) { return (
e.target === e.currentTarget && onClose()}>
Send Feedback
🎉
Thank you!
Your feedback has been saved. We read every single one.
) } return (
e.target === e.currentTarget && onClose()}>
Send Feedback
How would you rate OwnGPT?
{[1,2,3,4,5].map(v => ( ))}
{STAR_HINTS[hover || rating]}
Category
Your message