'use client'; import React from 'react'; import { BookProject, UserProfile } from '@/lib/types'; import { Plus, Book, Clock, Star, ChevronRight, LogOut, LayoutDashboard, User, Target, Flame, Edit3 } from 'lucide-react'; import { useLanguage } from '@/providers/LanguageProvider'; import { LanguageSwitcher } from '@/components/LanguageSwitcher'; interface DashboardProps { user: UserProfile; projects: BookProject[]; onSelect: (id: string) => void; onCreate: () => void; onLogout: () => void; onPricing: () => void; onProfile: () => void; } const Dashboard: React.FC = ({ user, projects, onSelect, onCreate, onLogout, onPricing, onProfile }) => { const { t } = useLanguage(); return (
{/* User Card */}
{user.avatar ? ( Avatar ) : (
{user.name?.charAt(0)?.toUpperCase() || '?'}
)}

{t('dashboard.hello')}, {user.name} 👋

{user.subscription.planDetails?.displayName || user.subscription.plan} {t('dashboard.member_since')} 24 janv.
{/* Stats Section */}

{t('dashboard.streak')}

{user.stats.writingStreak} {t('dashboard.days')}

{t('dashboard.words_written')}

{user.stats.totalWordsWritten.toLocaleString()}

{t('dashboard.daily_goal')}

{user.stats.dailyWordCount} / {user.preferences.dailyWordGoal} {t('dashboard.words')}

{/* Project List */}

{t('dashboard.my_novels')}

{projects.map(p => (
onSelect(p.id)} data-umami-event="Open Project" className="bg-theme-panel p-6 md:p-8 rounded-[2.5rem] border border-theme-border shadow-sm hover:shadow-2xl hover:scale-[1.02] transition-all cursor-pointer group flex flex-col justify-between h-64" >

{p.title}

{t('dashboard.last_modified')} : {new Date(p.lastModified).toLocaleDateString('fr-FR')}

{p.chapters.length} {t('nav.chapters')}
))} {projects.length === 0 && (

{t('dashboard.empty_projects')}

)}
{/* Sidebar Stats & Plan */}

{t('dashboard.usage')}

{t('sidebar.ai_actions')} {user.usage.aiActionsCurrent} / {user.usage.aiActionsLimit === 999999 ? '∞' : user.usage.aiActionsLimit}
{t('dashboard.novel_slots')} {projects.length} / {user.usage.projectsLimit}
); }; export default Dashboard;