// frontend/src/App.tsx import React from 'react'; import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom'; import { AuthProvider, useAuth } from './contexts/AuthContext'; import Login from './pages/Auth/Login'; import Dashboard from './pages/Dashboard/Dashboard'; import ShiftTemplateList from './pages/ShiftTemplates/ShiftTemplateList'; import ShiftTemplateEditor from './pages/ShiftTemplates/ShiftTemplateEditor'; // Protected Route Component const ProtectedRoute: React.FC<{ children: React.ReactNode }> = ({ children }) => { const { user, loading } = useAuth(); if (loading) { return
Lade...
; } return user ? <>{children} : ; }; const PublicRoute: React.FC<{ children: React.ReactNode }> = ({ children }) => { const { user, loading } = useAuth(); if (loading) { return
Lade...
; } return !user ? <>{children} : ; }; function AppRoutes() { return ( {/* Public Route - nur für nicht eingeloggte User */} } /> {/* Protected Routes - nur für eingeloggte User */} } /> } /> } /> } /> {/* Fallback Route */} } /> ); } function App() { return ( ); } export default App;