use lowdb for faster iteration; use strings for ids and camelCase for field names for consistency

This commit is contained in:
Avraham Sakal
2025-07-27 09:46:34 -04:00
parent 1f80ad4ba9
commit 01d2997f77
9 changed files with 134 additions and 88 deletions
+8 -8
View File
@@ -17,13 +17,12 @@ import {
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";
import type { CommittedMessage, DraftMessage } from "../../../types";
import Markdown from "react-markdown";
export default function ChatPage() {
const pageContext = usePageContext();
const conversationId = Number(pageContext.routeParams.id) as ConversationsId;
const conversationId = pageContext.routeParams.id;
const conversationTitle = useStore(
(state) => state.conversations.find((c) => c.id === conversationId)?.title,
);
@@ -126,7 +125,7 @@ export default function ChatPage() {
content: response.insertedAssistantMessage?.content,
index: response.insertedAssistantMessage?.index,
runningSummary:
response.insertedAssistantMessage?.running_summary ||
response.insertedAssistantMessage?.runningSummary ||
undefined,
} as CommittedMessage,
];
@@ -185,17 +184,18 @@ function Messages({
bdrs="md"
>
<div>
{"index" in message ? message.index : ""}
{message.role}
{"index" in message ? message.index : ""} {message.role}
</div>
<Markdown>{message.content}</Markdown>
{"runningSummary" in message && (
</Box>
{"runningSummary" in message && (
<Box w="75%" bd="dotted" p="md" bdrs="md">
<div>
<strong>Running Summary:</strong>
<Markdown>{message.runningSummary}</Markdown>
</div>
)}
</Box>
</Box>
)}
</Group>
))}
</Stack>
+2 -2
View File
@@ -7,10 +7,10 @@ export const data = async (pageContext: PageContextServer) => {
const { id } = pageContext.routeParams;
const caller = createCaller({});
const conversation = await caller.fetchConversation({
id: Number(id),
id,
});
const messages = await caller.fetchMessages({
conversationId: Number(id),
conversationId: id,
});
return { conversation, messages };
};