diff --git a/public/images/robo/robo_event_dark.png b/public/images/robo/robo_event_dark.png new file mode 100644 index 0000000..f289541 Binary files /dev/null and b/public/images/robo/robo_event_dark.png differ diff --git a/src/App.tsx b/src/App.tsx index 6438666..1c2cdf3 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -7,6 +7,7 @@ import { BrowserRouter, Routes, Route } from "react-router-dom"; import { HelmetProvider } from "react-helmet-async"; import { LanguageProvider } from "@/contexts/LanguageContext"; import { AuthProvider, useAuth } from "@/contexts/AuthContext"; +import { ThemeProvider } from "@/contexts/ThemeContext"; import Main from "./components/app/Main"; import LoginContainer from "./components/auth/LoginContainer"; import ArtistCollabForm from "@/features/event/components/ArtistCollabForm"; @@ -31,15 +32,17 @@ const App = () => ( - - - - - - - - - + + + + + + + + + + + diff --git a/src/components/app/Main.tsx b/src/components/app/Main.tsx index 211004d..4be4c74 100644 --- a/src/components/app/Main.tsx +++ b/src/components/app/Main.tsx @@ -1,7 +1,8 @@ import React, { useState, useEffect } from 'react'; import { Button } from "@/components/ui/button"; -import { LogOut, Menu } from 'lucide-react'; +import { LogOut, Menu, Moon, Sun } from 'lucide-react'; import { useAuth } from '@/contexts/AuthContext'; +import { useTheme } from '@/contexts/ThemeContext'; import { useNavigate } from 'react-router-dom'; import DashboardContainer from '../dashboard/DashboardContainer'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'; @@ -17,6 +18,7 @@ const MainShell: React.FC = () => { }, [resetHeader]); const { logout } = useAuth(); + const { theme, toggleTheme } = useTheme(); const navigate = useNavigate(); const [hasActiveEvent, setHasActiveEvent] = useState(false); // header is already available above @@ -71,13 +73,13 @@ const MainShell: React.FC = () => { Logo {!header.left && ( Logo )} @@ -91,6 +93,10 @@ const MainShell: React.FC = () => { {header.mobileMenu} {header.mobileMenu ? : null} + + {theme === 'dark' ? : } + {theme === 'dark' ? 'Light Mode' : 'Dark Mode'} + Abmelden @@ -108,6 +114,15 @@ const MainShell: React.FC = () => {
+