import React, { useEffect } from 'react'; import ReactDOM from 'react-dom/client'; import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; // Styles import './styles/design-system.css'; import './styles/index.css'; // Stores import { useAuthStore } from './stores/authStore'; import { useFinanceStore } from './stores/financeStore'; // Layout import { AppLayout } from './components/layout/AppLayout'; import { AuthGuard, GuestGuard } from './components/layout/AuthGuard'; import { ErrorBoundary } from './components/ErrorBoundary'; import { PWAPrompt, OfflineIndicator } from './components/PWAPrompt'; import { CommandPalette, useCommandPalette } from './components/CommandPalette'; // Pages import { LandingPage } from './pages/LandingPage'; import { LoginPage } from './pages/LoginPage'; import { RegisterPage } from './pages/RegisterPage'; import { DashboardPage } from './pages/DashboardPage'; import { TransactionsPage } from './pages/TransactionsPage'; import { BudgetPage } from './pages/BudgetPage'; import { AccountsPage } from './pages/AccountsPage'; import { AnalyticsPage } from './pages/AnalyticsPage'; import CalendarPage from './pages/CalendarPage'; import { RulesPage } from './pages/RulesPage'; import { ForgotPasswordPage } from './pages/ForgotPasswordPage'; import { ResetPasswordPage } from './pages/ResetPasswordPage'; import { SettingsPage } from './pages/SettingsPage'; import { GoalsPage } from './pages/GoalsPage'; import { BillRemindersPage } from './pages/BillRemindersPage'; // App Component const App: React.FC = () => { const { checkAuth, isLoading } = useAuthStore(); const { initializeData } = useFinanceStore(); const { isOpen: isCommandPaletteOpen, close: closeCommandPalette } = useCommandPalette(); useEffect(() => { checkAuth(); }, [checkAuth]); useEffect(() => { initializeData(); }, [initializeData]); if (isLoading) { return (
Loading Pace...