| import { HashRouter, Outlet, Route, Routes } from 'react-router'; | |
| import Header from './components/Header'; | |
| import Sidebar from './components/Sidebar'; | |
| import { AppContextProvider, useAppContext } from './utils/app.context'; | |
| import ChatScreen from './components/ChatScreen'; | |
| import SettingDialog from './components/SettingDialog'; | |
| function App() { | |
| return ( | |
| <HashRouter> | |
| <div className="flex flex-row drawer lg:drawer-open"> | |
| <AppContextProvider> | |
| <Routes> | |
| <Route element={<AppLayout />}> | |
| <Route path="/chat/:convId" element={<ChatScreen />} /> | |
| <Route path="*" element={<ChatScreen />} /> | |
| </Route> | |
| </Routes> | |
| </AppContextProvider> | |
| </div> | |
| </HashRouter> | |
| ); | |
| } | |
| function AppLayout() { | |
| const { showSettings, setShowSettings } = useAppContext(); | |
| return ( | |
| <> | |
| <Sidebar /> | |
| <div | |
| className="drawer-content grow flex flex-col h-screen w-screen mx-auto px-4 overflow-auto" | |
| id="main-scroll" | |
| > | |
| <Header /> | |
| <Outlet /> | |
| </div> | |
| { | |
| <SettingDialog | |
| show={showSettings} | |
| onClose={() => setShowSettings(false)} | |
| /> | |
| } | |
| </> | |
| ); | |
| } | |
| export default App; | |