From 4192cc1b5d1e2951963457516de0f9fe668c3b9a Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero <94913521+arielcostas@users.noreply.github.com> Date: Mon, 3 Mar 2025 19:13:53 +0100 Subject: Improve more the UI --- src/main.tsx | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'src/main.tsx') diff --git a/src/main.tsx b/src/main.tsx index cf9a20c..85d2caf 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,10 +1,14 @@ +import '@fontsource-variable/outfit' +import './styles/Pages.css' + import { createRoot } from 'react-dom/client' import { createBrowserRouter, Navigate, RouterProvider } from 'react-router' import { StopList } from './pages/StopList.tsx' import { Estimates } from './pages/Estimates.tsx' import { StopMap } from './pages/Map.tsx' import { Layout } from './Layout.tsx' -import './styles/Pages.css' +import { Sun, Moon } from 'lucide-react'; +import { useState, useEffect } from 'react'; const router = createBrowserRouter([ { @@ -30,11 +34,32 @@ const router = createBrowserRouter([ ]) function About() { + const [theme, setTheme] = useState<'light' | 'dark'>(() => { + const savedTheme = localStorage.getItem('theme'); + if (savedTheme) { + return savedTheme as 'light' | 'dark'; + } + const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; + return prefersDark ? 'dark' : 'light'; + }); + + useEffect(() => { + document.documentElement.setAttribute('data-theme', theme); + localStorage.setItem('theme', theme); + }, [theme]); + + const toggleTheme = () => { + setTheme((prevTheme) => (prevTheme === 'light' ? 'dark' : 'light')); + }; + return (

About InfoBus App

This application helps you find bus stops and check bus arrival estimates.

Version 1.0.0

+
) } -- cgit v1.3