| import { Routes, Route } from 'react-router-dom'; | |
| import Navigation from './Navigation'; | |
| import Conversation from './conversation/Conversation'; | |
| import About from './About'; | |
| import PageNotFound from './PageNotFound'; | |
| import { inject } from '@vercel/analytics'; | |
| import { useMediaQuery } from './hooks'; | |
| import { useState,useEffect } from 'react'; | |
| import Setting from './Setting'; | |
| inject(); | |
| export default function App() { | |
| const { isMobile } = useMediaQuery(); | |
| const [navOpen, setNavOpen] = useState(!isMobile); | |
| const selectedTheme = localStorage.getItem('selectedTheme'); | |
| useEffect(()=>{ | |
| if (selectedTheme === 'Dark') { | |
| document.documentElement.classList.add('dark'); | |
| document.body.classList.add('dark:bg-raisin-black'); | |
| } else { | |
| document.documentElement.classList.remove('dark'); | |
| } | |
| },[]) | |
| return ( | |
| <div className="min-h-full min-w-full dark:bg-raisin-black"> | |
| <Navigation navOpen={navOpen} setNavOpen={setNavOpen} /> | |
| <div | |
| className={`transition-all duration-200 ${ | |
| !isMobile | |
| ? `ml-0 ${!navOpen ? '-mt-5 md:mx-auto lg:mx-auto' : 'md:ml-72'}` | |
| : 'ml-0 md:ml-16' | |
| }`} | |
| > | |
| <Routes> | |
| <Route path="/" element={<Conversation />} /> | |
| <Route path="/about" element={<About />} /> | |
| <Route path="*" element={<PageNotFound />} /> | |
| <Route path="/settings" element={<Setting />} /> | |
| </Routes> | |
| </div> | |
| </div> | |
| ); | |
| } | |