components/assistant.tsx (33 lines of code) (raw):
"use client";
import React from "react";
import Chat from "./chat";
import useConversationStore from "@/stores/useConversationStore";
import { Item, processMessages } from "@/lib/assistant";
export default function Assistant() {
const { chatMessages, addConversationItem, addChatMessage } =
useConversationStore();
const handleSendMessage = async (message: string) => {
if (!message.trim()) return;
const userItem: Item = {
type: "message",
role: "user",
content: [{ type: "input_text", text: message.trim() }],
};
const userMessage: any = {
role: "user",
content: message.trim(),
};
try {
addConversationItem(userMessage);
addChatMessage(userItem);
await processMessages();
} catch (error) {
console.error("Error processing message:", error);
}
};
return (
<div className="h-full p-4 w-full bg-white">
<Chat items={chatMessages} onSendMessage={handleSendMessage} />
</div>
);
}