From 6caf79121b7fa28c02400b7d26c260628cc61058 Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Tue, 27 Jun 2023 23:39:27 +0800 Subject: [PATCH] feat: improve chat commands --- app/components/chat.tsx | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/app/components/chat.tsx b/app/components/chat.tsx index 81dadd8d..32cab346 100644 --- a/app/components/chat.tsx +++ b/app/components/chat.tsx @@ -515,14 +515,6 @@ export function Chat() { { leading: true, trailing: true }, ); - const onPromptSelect = (prompt: Prompt) => { - setTimeout(() => { - setPromptHints([]); - setUserInput(prompt.content); - inputRef.current?.focus(); - }, 30); - }; - // auto grow input const [inputRows, setInputRows] = useState(2); const measure = useDebouncedCallback( @@ -595,6 +587,23 @@ export function Chat() { setAutoScroll(true); }; + const onPromptSelect = (prompt: Prompt) => { + setTimeout(() => { + setPromptHints([]); + + const matchedChatCommand = chatCommands.match(prompt.content); + if (matchedChatCommand.matched) { + // if user is selecting a chat command, just trigger it + matchedChatCommand.invoke(); + setUserInput(""); + } else { + // or fill the prompt + setUserInput(prompt.content); + } + inputRef.current?.focus(); + }, 30); + }; + // stop response const onUserStop = (messageId: number) => { ChatControllerPool.stop(sessionIndex, messageId);