From 21ea63a69a1d223957b32e2ccf9850878f89836a Mon Sep 17 00:00:00 2001 From: patrick Date: Sun, 6 Sep 2026 13:37:02 +0200 Subject: [PATCH] =?UTF-8?q?feat(ui):=20Dashboard=20als=20Startseite=20f?= =?UTF-8?q?=C3=BCr=20Verantwortliche=20+=20einstellbar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root-Route "/" und Catch-all landeten bisher immer auf /objekte, Login-Weiterleitung (Verantwortliche -> Dashboard) war der einzige Pfad dorthin. Jetzt zentrale startseitenPfad()-Logik überall genutzt, zusätzlich per Dropdown in der Sidebar einstellbar (automatisch/ Dashboard/Objekte), Präferenz in localStorage. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV --- frontend/src/App.tsx | 10 ++++++- frontend/src/components/AppShell.tsx | 2 ++ frontend/src/components/StartseiteAuswahl.tsx | 29 ++++++++++++++++++ frontend/src/pages/LoginPage.tsx | 3 +- frontend/src/settings/startseite.ts | 30 +++++++++++++++++++ 5 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 frontend/src/components/StartseiteAuswahl.tsx create mode 100644 frontend/src/settings/startseite.ts diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 36d66c7..dad4d2c 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -11,6 +11,7 @@ import { KontrollPage } from "./pages/KontrollPage"; import { LoginPage } from "./pages/LoginPage"; import { MangelListePage } from "./pages/MangelListePage"; import { ObjektListPage } from "./pages/ObjektListPage"; +import { startseitenPfad } from "./settings/startseite"; function GeschuetzteRoute({ children }: { children: ReactNode }) { const { eingeloggt } = useAuth(); @@ -20,6 +21,12 @@ function GeschuetzteRoute({ children }: { children: ReactNode }) { return {children}; } +function Startseite() { + const { eingeloggt, istVerantwortlich } = useAuth(); + if (!eingeloggt) return ; + return ; +} + function AdminRoute({ children }: { children: ReactNode }) { const { eingeloggt, istVerantwortlich } = useAuth(); if (!eingeloggt) { @@ -39,6 +46,7 @@ export default function App() { } /> + } /> } /> - } /> + } /> ); diff --git a/frontend/src/components/AppShell.tsx b/frontend/src/components/AppShell.tsx index 31b4739..401c018 100644 --- a/frontend/src/components/AppShell.tsx +++ b/frontend/src/components/AppShell.tsx @@ -3,6 +3,7 @@ import { NavLink, useNavigate } from "react-router-dom"; import { useAuth } from "../auth/AuthContext"; import { CommandPalette } from "./CommandPalette"; +import { StartseiteAuswahl } from "./StartseiteAuswahl"; import { SyncStatus } from "./status/SyncStatus"; import { ThemeToggle } from "./ThemeToggle"; @@ -48,6 +49,7 @@ export function AppShell({ children }: { children: ReactNode }) { {istAdmin ? "Administration" : "Verwaltung"} )} + {istVerantwortlich && }