@@ -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