import { useState } from 'react' import './App.css' import Notebook from './screens/Notebook' import Lessons from './screens/Lessons' import Exercises from './screens/Exercises' import Chat from './screens/Chat' import Summary from './screens/Summary' import Tools from './screens/Tools' const TABS = [ { id: 'notebook', label: '📓 Notebook' }, { id: 'lessons', label: '📚 Lessons' }, { id: 'exercises', label: '🏋️ Exercises' }, { id: 'chat', label: '💬 Chat Coach' }, { id: 'summary', label: '⭐ Summary' }, { id: 'tools', label: '🔤 Tools' }, ] export default function App() { const [tab, setTab] = useState('notebook') const [openLessonId, setOpenLessonId] = useState(null) const [lessonText, setLessonText] = useState('') const openLesson = (id) => { setOpenLessonId(id) setTab('notebook') } let screen switch (tab) { case 'lessons': screen = break case 'exercises': screen = null break case 'chat': screen = break case 'summary': screen = break case 'tools': screen = break default: screen = ( setOpenLessonId(null)} onTextChange={setLessonText} /> ) } return ( 🇫🇷 French Coach Your daily French notebook — notes, gender at a glance, and practice from today's lesson. {TABS.map((t) => ( setTab(t.id)} > {t.label} ))} {screen} {/* Stays mounted across tab switches so practice progress isn't lost when you look something up elsewhere. */} ) }
Your daily French notebook — notes, gender at a glance, and practice from today's lesson.