- {messages.map((message, index) => (
- // biome-ignore lint/suspicious/noArrayIndexKey:
- {message.content}
- ))}
-
- );
-}
diff --git a/pages/chat/@id/+Page.tsx b/pages/chat/@id/+Page.tsx
new file mode 100644
index 0000000..d0e80e2
--- /dev/null
+++ b/pages/chat/@id/+Page.tsx
@@ -0,0 +1,142 @@
+import { JsonInput, Tabs, Textarea } from "@mantine/core";
+import { trpc } from "../../../trpc/client";
+import type { Message as UIMessage } from "ai";
+import { useEffect } from "react";
+import {
+ defaultParameters,
+ defaultSystemPrompt,
+ useStore,
+} from "../../../state";
+import { usePageContext } from "vike-react/usePageContext";
+import { useData } from "vike-react/useData";
+import type { Data } from "./+data";
+import type { ConversationsId } from "../../../database/generated/public/Conversations";
+
+export default function ChatPage() {
+ const pageContext = usePageContext();
+ const conversationId = Number(pageContext.routeParams.id) as ConversationsId;
+ const conversationTitle = useStore((state) => state.conversationTitle);
+ const messages = useStore((state) => state.messages);
+ const message = useStore((state) => state.message);
+ const systemPrompt = useStore((state) => state.systemPrompt);
+ const parameters = useStore((state) => state.parameters);
+ const loading = useStore((state) => state.loading);
+ const setConversationId = useStore((state) => state.setConversationId);
+ const setConversationTitle = useStore((state) => state.setConversationTitle);
+ const setMessages = useStore((state) => state.setMessages);
+ const setMessage = useStore((state) => state.setMessage);
+ const setSystemPrompt = useStore((state) => state.setSystemPrompt);
+ const setParameters = useStore((state) => state.setParameters);
+ const setLoading = useStore((state) => state.setLoading);
+
+ const conversation = useData