summaryrefslogtreecommitdiff
path: root/examples/server/webui/src/App.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'examples/server/webui/src/App.tsx')
-rw-r--r--examples/server/webui/src/App.tsx47
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;