@@ -4,14 +4,18 @@ import { Button, Widget, Typography, Avatar, TextInput } from '@neo4j-ndl/react'
44import ChatBotUserAvatar from '../assets/images/chatbot-user.png'
55import ChatBotAvatar from '../assets/images/chatbot-ai.png' ;
66import { ChatbotProps } from '../types' ;
7+ import { useCredentials } from '../context/UserCredentials' ;
8+ import { useFileContext } from '../context/UsersFiles' ;
9+ import chatBotAPI from '../services/QnaAPI' ;
710
811
912
1013export default function Chatbot ( props : ChatbotProps ) {
11- const { messages :listMessages , setMessages :setListMessages } = props ;
14+ const { messages : listMessages , setMessages : setListMessages } = props ;
1215 const [ inputMessage , setInputMessage ] = useState ( '' ) ;
1316 const formattedTextStyle = { color : 'rgb(var(--theme-palette-discovery-bg-strong))' } ;
14-
17+ const { userCredentials } = useCredentials ( ) ;
18+ const { model } = useFileContext ( )
1519 const messagesEndRef = useRef < HTMLDivElement > ( null ) ;
1620
1721 const handleInputChange = ( e : React . ChangeEvent < HTMLInputElement > ) => {
@@ -40,17 +44,18 @@ export default function Chatbot(props: ChatbotProps) {
4044 }
4145 } ;
4246
43- const handleSubmit = ( e : { preventDefault : ( ) => void } ) => {
47+ const handleSubmit = async ( e : { preventDefault : ( ) => void } ) => {
4448 e . preventDefault ( ) ;
4549 if ( ! inputMessage . trim ( ) ) {
4650 return ;
4751 }
4852 const date = new Date ( ) ;
4953 const datetime = `${ date . toLocaleDateString ( ) } ${ date . toLocaleTimeString ( ) } ` ;
5054 const userMessage = { id : 999 , user : 'user' , message : inputMessage , datetime : datetime } ;
55+ const chatresponse = await chatBotAPI ( userCredentials , model , inputMessage )
56+ console . log ( chatresponse )
5157 setListMessages ( ( listMessages ) => [ ...listMessages , userMessage ] ) ;
5258 setInputMessage ( '' ) ;
53-
5459 const chatbotReply = 'Hello Sir, how can I help you today?' ; // Replace with getting a response from your chatbot through your APIs
5560 simulateTypingEffect ( chatbotReply ) ;
5661 } ;
@@ -65,7 +70,7 @@ export default function Chatbot(props: ChatbotProps) {
6570
6671 return (
6772 < div className = 'n-bg-palette-neutral-bg-weak flex flex-col justify-between min-h-full max-h-full overflow-hidden w-[312px]' >
68- < div className = 'flex overflow-y-auto pb-12 min-w-full' style = { { scrollbarWidth :"thin" , overflowX :"hidden" } } >
73+ < div className = 'flex overflow-y-auto pb-12 min-w-full' style = { { scrollbarWidth : "thin" , overflowX : "hidden" } } >
6974 < Widget className = 'n-bg-palette-neutral-bg-weak' header = '' isElevated = { false } >
7075 < div className = 'flex flex-col gap-4 gap-y-4' >
7176 { listMessages . map ( ( chat ) => (
0 commit comments