import { Routes, Route, Navigate } from 'react-router' import { ThemeProvider } from './components/ThemeProvider' import { AuthProvider, useAuth } from './contexts/AuthContext' import { SocketProvider } from './contexts/SocketContext' import { LoginPage } from './pages/LoginPage' import { RegisterPage } from './pages/RegisterPage' import { AuthCallbackPage } from './pages/AuthCallbackPage' import { DashboardPage } from './pages/DashboardPage' import { SoundsPage } from './pages/SoundsPage' import { PlaylistsPage } from './pages/PlaylistsPage' import { ExtractionsPage } from './pages/ExtractionsPage' import { UsersPage } from './pages/admin/UsersPage' import { SettingsPage } from './pages/admin/SettingsPage' import { Toaster } from './components/ui/sonner' 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