From e1cc9a08a2a854df904eff8012a1477fa1d63792 Mon Sep 17 00:00:00 2001 From: David Zhao Date: Mon, 15 Jan 2024 13:51:56 -0800 Subject: [PATCH] Use agent status from metadata channels (#10) --- src/components/chat/ChatMessageInput.tsx | 12 +- src/components/chat/ChatTile.tsx | 5 +- src/components/playground/Playground.tsx | 209 ++++++++++-------- .../AgentMultibandAudioVisualizer.tsx | 3 +- src/lib/types.ts | 7 + src/pages/index.tsx | 45 ++-- 6 files changed, 172 insertions(+), 109 deletions(-) diff --git a/src/components/chat/ChatMessageInput.tsx b/src/components/chat/ChatMessageInput.tsx index cf5e8f9..37205e5 100644 --- a/src/components/chat/ChatMessageInput.tsx +++ b/src/components/chat/ChatMessageInput.tsx @@ -1,11 +1,11 @@ import { useWindowResize } from "@/hooks/useWindowResize"; -import { useEffect, useRef, useState } from "react"; +import { useCallback, useEffect, useRef, useState } from "react"; type ChatMessageInput = { placeholder: string; accentColor: string; height: number; - onSend: (message: string) => void; + onSend?: (message: string) => void; }; export const ChatMessageInput = ({ @@ -23,14 +23,17 @@ export const ChatMessageInput = ({ const [isTyping, setIsTyping] = useState(false); const [inputHasFocus, setInputHasFocus] = useState(false); - const handleSend = () => { + const handleSend = useCallback(() => { + if (!onSend) { + return; + } if (message === "") { return; } onSend(message); setMessage(""); - }; + }, [onSend, message]); useEffect(() => { setIsTyping(true); @@ -105,6 +108,7 @@ export const ChatMessageInput = ({ {message.replaceAll(" ", "\u00a0")}