From 530fd3f3c32823a751712412f158406ab82198f2 Mon Sep 17 00:00:00 2001 From: Ashish Adarsh Date: Mon, 14 Jul 2025 12:17:01 +0530 Subject: [PATCH] description added to tickets && theme update --- client/components/header.js | 53 ++++++++++++++++++++++++------ client/globals.css | 37 +++++++++++++++++++++ client/pages/index.js | 28 +++++++++++----- client/pages/tickets/[ticketId].js | 37 ++++++++++++++------- client/pages/tickets/new.js | 16 ++++++++- orders/src/routes/new.ts | 2 +- tickets/src/models/ticket.ts | 10 ++++-- tickets/src/routes/new.ts | 9 ++--- 8 files changed, 154 insertions(+), 38 deletions(-) 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 (
  • {label} @@ -28,10 +56,10 @@ const Header = ({ currentUser }) => { }); return ( -