From d8593925dc9747d4068d3ffef3febc055f90b394 Mon Sep 17 00:00:00 2001 From: Douglas Garrigan Date: Mon, 17 Jun 2024 06:54:51 -0400 Subject: [PATCH] Fixed bot response loading animation --- copilot-ui/src/actions/ActionProvider.tsx | 39 +++++++------------ .../src/components/CustomChatMessage.tsx | 12 +++--- copilot-ui/src/index.css | 5 +++ 3 files changed, 25 insertions(+), 31 deletions(-) diff --git a/copilot-ui/src/actions/ActionProvider.tsx b/copilot-ui/src/actions/ActionProvider.tsx index 50ea147f..7927ed57 100644 --- a/copilot-ui/src/actions/ActionProvider.tsx +++ b/copilot-ui/src/actions/ActionProvider.tsx @@ -2,7 +2,6 @@ import React, { useState, useCallback, useEffect } from 'react'; import { createClientMessage } from 'react-chatbot-kit'; import useWebSocket, { ReadyState } from 'react-use-websocket'; import Loader from '../components/Loader'; -import Loader2 from '../components/Loader2'; const API_QUERY = 'https://copilot-tg-26bfd0cd-6582-414e-937e-e2c83ecb5a79.us-east-1.i.tgcloud.io/Transaction_Fraud/query' const WS_URL = 'ws://0.0.0.0:8000/ui/Demo_Graph1/chat'; @@ -17,7 +16,6 @@ const ActionProvider: React.FC = ({ createChatBotMessage, s const [socketUrl, setSocketUrl] = useState(WS_URL); const [messageHistory, setMessageHistory] = useState[]>([]); const { sendMessage, lastMessage, readyState } = useWebSocket(socketUrl); - const [showLoad, setLoad] = useState(false); // eslint-disable-next-line // @ts-ignore @@ -26,12 +24,6 @@ const ActionProvider: React.FC = ({ createChatBotMessage, s }); - const queryCopilotWs = ((msg:string) => { - setLoad(true); - sendMessage(msg) - }); - - useWebSocket(WS_URL, { onOpen: () => { queryCopilotWs2('dXNlcl8yOlRoaXNpc3RoZWFkbWluITE=') @@ -50,18 +42,28 @@ const ActionProvider: React.FC = ({ createChatBotMessage, s const defaultQuestions = (msg: string) => { if (msg === 'Tell me about transaction fraud.') { - console.log(msg) handleTransactionFraud(msg); } else { - setLoad(true); const clientMessage = createClientMessage(msg, { - delay: 1300, + delay: 300, }); updateState(clientMessage); queryCopilotWs(msg); } } + + const queryCopilotWs = (msg) => { + const queryCopilotWsTest = ((msg:string) => {sendMessage(msg)}); + queryCopilotWsTest(msg); + const loading = createChatBotMessage() + setState((prev: any) => ({ + ...prev, + messages: [...prev.messages, loading] + })) + } + + const handleTransactionFraud = (msg) => { console.log(msg) const clientMessage = createClientMessage(msg, { @@ -78,20 +80,14 @@ const ActionProvider: React.FC = ({ createChatBotMessage, s useEffect(() => { if (lastMessage !== null) { - const loading = createChatBotMessage() - setState((prev: any) => ({ - ...prev, - messages: [...prev.messages, loading] - })); setMessageHistory((prev) => prev.concat(lastMessage)); - setTimeout(() => { + // setTimeout(() => { const botMessage = createChatBotMessage(JSON.parse(lastMessage.data)); - setLoad(false); setState((prev) => { const newPrevMsg = prev.messages.slice(0, -1) return { ...prev, messages: [...newPrevMsg, botMessage], } }) - }, 600); + // }, 300); } }, [lastMessage]); @@ -131,17 +127,12 @@ const ActionProvider: React.FC = ({ createChatBotMessage, s return (
- {/* {showLoad ?
: null} */} - {showLoad ?
: null} - - {/* {showLoad ? : null} */} The WebSocket is currently {connectionStatus} {React.Children.map(children, (child) => { return React.cloneElement(child, { actions: { defaultQuestions, handleTransactionFraud, - // queryCopilot, queryCopilotWs }, }); diff --git a/copilot-ui/src/components/CustomChatMessage.tsx b/copilot-ui/src/components/CustomChatMessage.tsx index f44e6589..663e4f51 100755 --- a/copilot-ui/src/components/CustomChatMessage.tsx +++ b/copilot-ui/src/components/CustomChatMessage.tsx @@ -6,8 +6,6 @@ import { IoMdCopy } from "react-icons/io"; import { PiArrowsCounterClockwiseFill } from "react-icons/pi"; import { LuInfo } from "react-icons/lu"; -import { SetStateAction } from "react"; - // interface IChatbotMessageProps { // message?: any; // } @@ -37,10 +35,8 @@ export const CustomChatMessage: FC = ({ message }: IChatbo return ( <> - {/* {JSON.stringify(typeof message)} */} - {typeof message === 'string' ? ( -
+

{message}

@@ -56,7 +52,7 @@ export const CustomChatMessage: FC = ({ message }: IChatbo
alert('Regenerate!!')}>
-
alert('explain!!')}> +
explain()}> Explain
@@ -64,7 +60,8 @@ export const CustomChatMessage: FC = ({ message }: IChatbo
) : ( -
+ message.key === null ? message : ( +

{message.natural_language_response}

@@ -93,6 +90,7 @@ export const CustomChatMessage: FC = ({ message }: IChatbo

: null}
+ ) )} diff --git a/copilot-ui/src/index.css b/copilot-ui/src/index.css index 39c3f22b..b5868601 100755 --- a/copilot-ui/src/index.css +++ b/copilot-ui/src/index.css @@ -123,6 +123,11 @@ font-family: Urbane-Light, Arial, serif; } +.chatbot-loader-container { + display: inline !important; + padding-top: 28px !important; +} + .bg-popover { background-color: hsl(var(--popover)); }