diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index 694234d0d..d3c05cbcc 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -1,4 +1,4 @@ -import React from 'react' +import React, { useState, useEffect } from 'react' import Search from './Search' import '../styles/SearchBarDesktopView.scss' import { pageNames } from '../util/pageNames' @@ -12,6 +12,30 @@ const Navbar = ({ mapOrHomeTitle, shufflePeopleOnClick, }: any) => { + const [isDarkMode, setIsDarkMode] = useState(false) + + // Check if dark mode is already set in localStorage + useEffect(() => { + const savedTheme = localStorage.getItem('theme') + if (savedTheme === 'dark') { + setIsDarkMode(true) + document.body.classList.add('dark-mode') + } + }, []) + + // Toggle dark mode + const handleDarkModeToggle = () => { + const newMode = !isDarkMode + setIsDarkMode(newMode) + if (newMode) { + document.body.classList.add('dark-mode') + localStorage.setItem('theme', 'dark') + } else { + document.body.classList.remove('dark-mode') + localStorage.setItem('theme', 'light') + } + } + return (

)} + {/* Dark mode toggle button */} + ) diff --git a/src/styles/SearchBarDesktopView.scss b/src/styles/SearchBarDesktopView.scss index 54718d104..59ff99370 100644 --- a/src/styles/SearchBarDesktopView.scss +++ b/src/styles/SearchBarDesktopView.scss @@ -9,3 +9,41 @@ display: none; } } +/* Light mode (default) */ +body { + background-color: #f5f5f5; + color: #212121; +} + +.header-items { + background-color: #212121; + color: #ffffff; +} + +/* Dark mode */ +body.dark-mode { + background-color: #212121; + color: #212121; +} + +.header-items.dark-mode { + background-color: #333333; + color: #fff; +} + +button { + background-color: var(--primary-color); + color: white; + border: none; + cursor: pointer; + padding: 0.5rem 1rem; + border-radius: 4px; + font-family: 'Roboto Condensed', sans-serif; + font-size: 24px; +} + +/* Dark mode button styles */ +body.dark-mode button { + background-color: var(--secondary-color); + color: white; +} diff --git a/src/styles/SearchBarMobileView.scss b/src/styles/SearchBarMobileView.scss index f72fc5310..b4154a32c 100644 --- a/src/styles/SearchBarMobileView.scss +++ b/src/styles/SearchBarMobileView.scss @@ -14,3 +14,41 @@ top: 80%; } } +/* Light mode (default) */ +body { + background-color: #f5f5f5; + color: #212121; +} + +.header-items { + background-color: #212121; + color: #ffffff; +} + +/* Dark mode */ +body.dark-mode { + background-color: #212121; + color: #212121; +} + +.header-items.dark-mode { + background-color: #333333; + color: #fff; +} + +button { + background-color: var(--primary-color); + color: red; + border: none; + cursor: pointer; + padding: 0.5rem 1rem; + border-radius: 4px; + font-family: 'Roboto Condensed', sans-serif; + font-size: 24px; +} + +/* Dark mode button styles */ +body.dark-mode button { + background-color: var(--secondary-color); + color: blue; +}