Skip to content

Commit 48ee4ca

Browse files
added loading state
1 parent bd53b98 commit 48ee4ca

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

frontend/src/components/Chatbot.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export default function Chatbot(props: ChatbotProps) {
1212
const { messages: listMessages, setMessages: setListMessages } = props;
1313
const [inputMessage, setInputMessage] = useState('');
1414
const formattedTextStyle = { color: 'rgb(var(--theme-palette-discovery-bg-strong))' };
15+
const [loading, setLoading] = useState<boolean>(false)
1516
const { userCredentials } = useCredentials();
1617
const { model } = useFileContext();
1718
const messagesEndRef = useRef<HTMLDivElement>(null);
@@ -53,14 +54,17 @@ export default function Chatbot(props: ChatbotProps) {
5354
const userMessage = { id: Date.now(), user: 'user', message: inputMessage, datetime: datetime };
5455
setListMessages((listMessages) => [...listMessages, userMessage]);
5556
try {
57+
setLoading(true)
5658
const chatresponse = await chatBotAPI(userCredentials, model, inputMessage);
5759
chatbotReply = chatresponse?.data?.message;
5860
setInputMessage('');
5961
simulateTypingEffect(chatbotReply);
62+
setLoading(false)
6063
} catch (error) {
6164
chatbotReply = "Oops! It seems we couldn't retrieve the answer. Please try again later";
6265
setInputMessage('');
6366
simulateTypingEffect(chatbotReply);
67+
setLoading(false)
6468
}
6569
};
6670

@@ -111,9 +115,8 @@ export default function Chatbot(props: ChatbotProps) {
111115
<Widget
112116
header=''
113117
isElevated={true}
114-
className={`p-4 self-start ${
115-
chat.user === 'chatbot' ? 'n-bg-palette-neutral-bg-strong' : 'n-bg-palette-primary-bg-weak'
116-
}`}
118+
className={`p-4 self-start ${chat.user === 'chatbot' ? 'n-bg-palette-neutral-bg-strong' : 'n-bg-palette-primary-bg-weak'
119+
}`}
117120
>
118121
<div>
119122
{chat.message.split(/`(.+?)`/).map((part, index) =>
@@ -144,7 +147,7 @@ export default function Chatbot(props: ChatbotProps) {
144147
fluid
145148
onChange={handleInputChange}
146149
/>
147-
<Button type='submit'>Submit</Button>
150+
<Button type='submit' disabled={loading}>Submit</Button>
148151
</form>
149152
</div>
150153
</div>

0 commit comments

Comments
 (0)