|
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> |
|
); |
|
} |
|
|