From 421f6096ec7e6cfb6e7f83f20e7e3929561a21df Mon Sep 17 00:00:00 2001 From: Patrick Arminio Date: Thu, 6 Aug 2026 15:15:39 +0100 Subject: [PATCH] Add conference switcher Shortcake-Parent: 2026-08-06-add-login-page --- .../dashboard/src/components/app-sidebar.tsx | 46 +++--- .../src/components/conference-switcher.tsx | 133 ++++++++++++++++++ backend/dashboard/src/pages/Dashboard.tsx | 17 ++- backend/dashboard/tests/test_views.py | 57 ++++++++ backend/dashboard/urls.py | 2 +- backend/dashboard/views.py | 65 ++++++++- backend/pycon/urls.py | 10 +- 7 files changed, 295 insertions(+), 35 deletions(-) create mode 100644 backend/dashboard/src/components/conference-switcher.tsx diff --git a/backend/dashboard/src/components/app-sidebar.tsx b/backend/dashboard/src/components/app-sidebar.tsx index 380a06fa0e..b03162ad73 100644 --- a/backend/dashboard/src/components/app-sidebar.tsx +++ b/backend/dashboard/src/components/app-sidebar.tsx @@ -1,6 +1,10 @@ import { Link } from "@inertiajs/react"; import { LayoutDashboard } from "lucide-react"; +import { + type ConferenceData, + ConferenceSwitcher, +} from "@/components/conference-switcher"; import { NavUser, type NavUserData } from "@/components/nav-user"; import { @@ -17,32 +21,26 @@ import { SidebarRail, } from "@/components/ui/sidebar"; -export function AppSidebar({ user }: { user: NavUserData }) { +export function AppSidebar({ + conferences, + selectedConference, + user, +}: { + conferences: ConferenceData[]; + selectedConference: ConferenceData | null; + user: NavUserData; +}) { + const dashboardUrl = selectedConference + ? `/dashboard/${encodeURIComponent(selectedConference.code)}` + : "/dashboard"; + return ( - - - - - -
-
- PyCon Italia 2026 -
-
- Python Italia -
-
- -
-
-
+
@@ -52,7 +50,7 @@ export function AppSidebar({ user }: { user: NavUserData }) { - +