import React, { useState, useEffect } from 'react'; import ChatInterface from './components/ChatInterface'; import { LanguageProvider } from './contexts/LanguageContext'; import LanguageSelector from './components/LanguageSelector'; import FeedbackPage from './components/FeedbackPage'; import UserFeedbackAnalysisPage from './components/UserFeedbackAnalysisPage'; import { Review } from './types'; function App() { const [page, setPage] = useState<'chat' | 'feedback' | 'userexperience'>('chat'); // Initialize reviews from localStorage const [reviews, setReviews] = useState(() => { try { const storedReviews = window.localStorage.getItem('emotimate-reviews'); return storedReviews ? JSON.parse(storedReviews) : []; } catch (error) { console.error("Error reading reviews from localStorage", error); return []; } }); // Save reviews to localStorage whenever they change useEffect(() => { try { window.localStorage.setItem('emotimate-reviews', JSON.stringify(reviews)); } catch (error) { console.error("Error saving reviews to localStorage", error); } }, [reviews]); const handleAddReview = (review: Omit) => { const newReview: Review = { ...review, id: `User-${Math.random().toString(36).substr(2, 4).toUpperCase()}`, date: new Date().toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' }), }; setReviews(prev => [...prev, newReview]); }; const handleDeleteReview = (reviewId: string) => { setReviews(prev => prev.filter(review => review.id !== reviewId)); }; const buttonClasses = "text-sm sm:text-base text-slate-600 hover:text-blue-600 font-medium transition-colors px-3 py-2 rounded-lg hover:bg-slate-200"; return (

EmotiMate

{page === 'chat' && ( <> )} {page === 'feedback' && ( <> )} {page === 'userexperience' && ( <> )}
{page === 'chat' && } {page === 'feedback' && setPage('chat')} onAddReview={handleAddReview} />} {page === 'userexperience' && }
); } export default App;