summaryrefslogtreecommitdiffhomepage
path: root/packages/frontend/src/App.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/App.svelte')
-rw-r--r--packages/frontend/src/App.svelte32
1 files changed, 32 insertions, 0 deletions
diff --git a/packages/frontend/src/App.svelte b/packages/frontend/src/App.svelte
new file mode 100644
index 0000000..038fb09
--- /dev/null
+++ b/packages/frontend/src/App.svelte
@@ -0,0 +1,32 @@
+<script lang="ts">
+import { onMount } from "svelte";
+import ChatInput from "./lib/components/ChatInput.svelte";
+import ChatPanel from "./lib/components/ChatPanel.svelte";
+import Header from "./lib/components/Header.svelte";
+import { wsClient } from "./lib/ws.svelte.js";
+
+const STORAGE_KEY = "dispatch-theme";
+
+onMount(() => {
+ // Apply saved theme
+ const saved = localStorage.getItem(STORAGE_KEY);
+ if (saved) {
+ document.documentElement.setAttribute("data-theme", saved);
+ }
+
+ // Connect WebSocket
+ wsClient.connect();
+
+ return () => {
+ wsClient.disconnect();
+ };
+});
+</script>
+
+<div class="flex flex-col h-screen overflow-hidden bg-base-100 text-base-content">
+ <Header />
+ <div class="flex-1 overflow-hidden">
+ <ChatPanel />
+ </div>
+ <ChatInput />
+</div>