import React, { useState, useEffect } from 'react'; import { Routes, Route, Navigate, useNavigate, useLocation } from 'react-router-dom'; import Navbar from './components/Navbar'; import Tracker from './components/Tracker/index'; import History from './components/History'; import Stats from './components/Stats'; import AICoach from './components/AICoach'; import Plans from './components/Plans'; import Login from './components/Login'; import Profile from './components/Profile'; import { Language, User } from './types'; import { getSystemLanguage } from './services/i18n'; import { useAuth } from './context/AuthContext'; function App() { const { currentUser, updateUser, logout, isLoading } = useAuth(); const [language, setLanguage] = useState('en'); const navigate = useNavigate(); const location = useLocation(); useEffect(() => { if (currentUser?.profile?.language) { setLanguage(currentUser.profile.language as Language); } else { setLanguage(getSystemLanguage()); } }, [currentUser]); const handleLogin = (user: User) => { updateUser(user); navigate('/'); }; const handleLogout = () => { logout(); navigate('/login'); }; if (isLoading) { return (
Loading...
); } if (!currentUser && location.pathname !== '/login') { return ; } return (
{currentUser && ( )} {/* Main Content Area */}
) : ( ) } /> } /> } /> } /> } /> } /> } /> } />
); } export default App;