import { Navigate, Route, Routes } from 'react-router' import { LocaleProvider } from './components/LocaleProvider' import { ThemeProvider } from './components/ThemeProvider' import { Toaster } from './components/ui/sonner' import { AuthProvider, useAuth } from './contexts/AuthContext' import { SocketProvider } from './contexts/SocketContext' import { AccountPage } from './pages/AccountPage' import { AuthCallbackPage } from './pages/AuthCallbackPage' import { DashboardPage } from './pages/DashboardPage' import { ExtractionsPage } from './pages/ExtractionsPage' import { LoginPage } from './pages/LoginPage' import { PlaylistEditPage } from './pages/PlaylistEditPage' import { PlaylistsPage } from './pages/PlaylistsPage' import { RegisterPage } from './pages/RegisterPage' import { SchedulersPage } from './pages/SchedulersPage' import { SequencerPage } from './pages/SequencerPage' import { SoundsPage } from './pages/SoundsPage' import { SettingsPage } from './pages/admin/SettingsPage' import { UsersPage } from './pages/admin/UsersPage' function ProtectedRoute({ children }: { children: React.ReactNode }) { const { user, loading } = useAuth() if (loading) { return (
Loading...
) } if (!user) { return } return <>{children} } function AdminRoute({ children }: { children: React.ReactNode }) { const { user, loading } = useAuth() if (loading) { return (
Loading...
) } if (!user) { return } if (user.role !== 'admin') { return } return <>{children} } function AppRoutes() { const { user } = useAuth() return ( : } /> : } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ) } function App() { return ( ) } export default App