import React, { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { PublicLayout } from '../../components/layout'; import { MessageSquare, Heart, ThumbsUp, ThumbsDown, Lightbulb, AlertTriangle, Send, CheckCircle2, AlertCircle, Star } from 'lucide-react'; interface FeedbackCategory { id: string; title: string; description: string; icon: React.ComponentType<{ className?: string }>; color: string; } const FeedbackPage: React.FC = () => { const { t } = useTranslation(); const [formState, setFormState] = useState({ name: '', email: '', category: 'suggestion' as 'suggestion' | 'bug' | 'feature' | 'praise' | 'complaint', title: '', description: '', rating: 0, }); const [submitStatus, setSubmitStatus] = useState<'idle' | 'loading' | 'success' | 'error'>('idle'); const categories: FeedbackCategory[] = [ { id: 'suggestion', title: 'Sugerencia', description: 'Ideas para mejorar el producto', icon: Lightbulb, color: 'blue', }, { id: 'feature', title: 'Nueva Funcionalidad', description: 'Solicita una característica nueva', icon: Star, color: 'purple', }, { id: 'bug', title: 'Reportar Bug', description: 'Algo no funciona como debería', icon: AlertTriangle, color: 'red', }, { id: 'praise', title: 'Elogio', description: '¡Algo te encanta!', icon: Heart, color: 'green', }, { id: 'complaint', title: 'Queja', description: 'Algo te molesta o decepciona', icon: ThumbsDown, color: 'amber', }, ]; const handleChange = (e: React.ChangeEvent) => { setFormState({ ...formState, [e.target.name]: e.target.value, }); }; const handleRatingChange = (rating: number) => { setFormState({ ...formState, rating, }); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setSubmitStatus('loading'); // Simulate API call await new Promise((resolve) => setTimeout(resolve, 1500)); // In production, this would be an actual API call console.log('Feedback submitted:', formState); setSubmitStatus('success'); setTimeout(() => { setSubmitStatus('idle'); setFormState({ name: '', email: '', category: 'suggestion', title: '', description: '', rating: 0, }); }, 3000); }; const getCategoryColor = (color: string) => { const colors: Record = { blue: 'from-blue-500/10 to-blue-600/10 border-blue-500/20', purple: 'from-purple-500/10 to-purple-600/10 border-purple-500/20', red: 'from-red-500/10 to-red-600/10 border-red-500/20', green: 'from-green-500/10 to-green-600/10 border-green-500/20', amber: 'from-amber-500/10 to-amber-600/10 border-amber-500/20', }; return colors[color] || colors.blue; }; const getCategoryIconColor = (color: string) => { const colors: Record = { blue: 'text-blue-600', purple: 'text-purple-600', red: 'text-red-600', green: 'text-green-600', amber: 'text-amber-600', }; return colors[color] || colors.blue; }; return ( {/* Hero Section */}
Tu Opinión Importa

Ayúdanos a Mejorar Panadería IA

Tu feedback es fundamental para construir el mejor producto para panaderías artesanales

{/* Why Feedback Matters */}

¿Por Qué Tu Feedback Es Importante?

Estamos construyendo esto juntos

Priorizamos Tu Feedback

Cada sugerencia es revisada y considerada para el roadmap de producto

Tus Ideas Nos Inspiran

Las mejores funcionalidades vienen directamente de nuestros usuarios

Comunidad Activa

Contribuyes a crear una herramienta que toda la comunidad panadera disfrutará

{/* Feedback Form */}

Comparte Tu Feedback

Queremos escucharte

{/* Category Selection */}

¿Qué tipo de feedback quieres compartir?

{categories.map((category) => { const CategoryIcon = category.icon; const isSelected = formState.category === category.id; return ( ); })}
{/* Success/Error Messages */} {submitStatus === 'success' && (

¡Gracias por tu feedback! Lo revisaremos pronto.

)} {submitStatus === 'error' && (

Error al enviar. Por favor, inténtalo de nuevo.

)}
{/* Name */}
{/* Email */}
{/* Rating */} {formState.category === 'praise' && (
{[1, 2, 3, 4, 5].map((rating) => ( ))}
)} {/* Title */}
{/* Description */}