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 { Sun, Moon } from 'lucide-react';
import { useState, useEffect } from 'react';
const router = createBrowserRouter([
{
path: '/',
element: ,
},
{
path: '/stops',
element: ,
},
{
path: '/map',
element: ,
},
{
path: '/estimates/:stopId',
element:
},
{
path: '/about',
element:
}
])
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
)
}
createRoot(document.getElementById('root')!).render(
,
)