diff --git a/client/components/header.js b/client/components/header.js index 3c9ee60..1ddb7d1 100644 --- a/client/components/header.js +++ b/client/components/header.js @@ -1,25 +1,53 @@ import Link from 'next/link'; import { useRouter } from 'next/router'; +import { useEffect, useState } from 'react'; const Header = ({ currentUser }) => { const router = useRouter(); + const [darkMode, setDarkMode] = useState(false); + + // Load theme preference from localStorage + useEffect(() => { + const stored = localStorage.getItem('theme'); + const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; + if (stored === 'dark' || (!stored && prefersDark)) { + document.body.classList.add('dark'); + setDarkMode(true); + } + }, []); + + // Toggle dark mode + const toggleTheme = () => { + const newMode = !darkMode; + setDarkMode(newMode); + if (newMode) { + document.body.classList.add('dark'); + localStorage.setItem('theme', 'dark'); + } else { + document.body.classList.remove('dark'); + localStorage.setItem('theme', 'light'); + } + }; const links = [ !currentUser && { label: 'Sign Up', href: '/auth/signup' }, !currentUser && { label: 'Sign In', href: '/auth/signin' }, currentUser && { label: 'My Orders', href: '/orders' }, currentUser && { label: 'Sell Tickets', href: '/tickets/new' }, - currentUser && { label: 'Sign Out', href: '/auth/signout' } + currentUser && { label: 'Sign Out', href: '/auth/signout' }, ] .filter(Boolean) .map(({ label, href }) => { const isActive = router.pathname === href; - return (
- Price: ${ticket.price} +
+ Price: ${ticket.price} +
+ Description: {ticket.description}
${ticket.price}
Buy your ticket securely
+ {ticket.description} +