-
Avanish Singh authoredAvanish Singh authored
ChatbotComponent.js 2.28 KiB
import React, {useEffect, useState} from 'react';
import "../styles/style.css";
import Header from "./Header";
import InputSection from "./InputSection";
import MessageSection from "./MessageSection";
import io from 'socket.io-client';
const socket = io();
const ChatbotComponent = () => {
const [messages, setMessages] = useState([
])
const greetingMessage = {
info: "Hey, Welcome to FoodWhizz, What would you like to have today? Enter name of food you like to make today",
type: "left",
name: "FoodWhizz"
};
useEffect(() => {
// eslint-disable-next-line react-hooks/exhaustive-deps
setMessages([greetingMessage]);
}, []);
// Function to add user and bot messages
function addMessage(value_info, value_type){
const newUserMessage = createMessage(value_info, value_type, "User");
setMessages([...messages, newUserMessage]);
socket.emit('client message',value_info)
socket.on('bot-message',(data) =>{
const newBotMessage = createMessage(data, "left", "FoodWhizz");
setMessages([...messages,newUserMessage,newBotMessage]);
})
}
// Function to create a message object
function createMessage(value_info, value_type, name){
let date = new Date();
let minutes = date.getMinutes().toString();
if (date.getMinutes() < 10){
minutes = "0" + minutes.toString();
}
return(
{
info: value_info,
date: date.getHours().toString() + ":" + minutes,
type: value_type,
name: name
}
)
}
// Function to update messages
function Update(){
setMessages([greetingMessage])
}
return (
<div>
<input className="down_button" id="top-box" type="checkbox" hidden></input>
<label className="down_label" htmlFor="top-box"></label>
<div className="main" id="container">
<Header update={Update}/>
<MessageSection messages={messages} area="msg_section" />
<InputSection send_button={addMessage} />
</div>
<footer>© Copyright 2024</footer>
</div>
);
};
export default ChatbotComponent;