diff options
Diffstat (limited to 'examples/server/webui/src/App.tsx')
-rw-r--r-- | examples/server/webui/src/App.tsx | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/examples/server/webui/src/App.tsx b/examples/server/webui/src/App.tsx new file mode 100644 index 00000000..cc4659e1 --- /dev/null +++ b/examples/server/webui/src/App.tsx @@ -0,0 +1,47 @@ +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 bg-base-100" + id="main-scroll" + > + <Header /> + <Outlet /> + </div> + { + <SettingDialog + show={showSettings} + onClose={() => setShowSettings(false)} + /> + } + </> + ); +} + +export default App; |