Didn't succeed in using this thread to help.
I have button div with an onClick
that invokes a handleSendMessage
.
I want this handleSendMessage
to be invoked whenever a user presses the 'Enter' key
while on the page.
How can I do that?
Component looks like this :
const ChatScreen = () => {
const [message, setMessage] = useState("");
const dispatch = useDispatch();
let chatsFromState = useSelector(state => state.chatsState.chats);
const socket = io("localhost:4000");
socket.on("RECEIVE_MESSAGE", msgReceived => {
console.log("msgReceived ", msgReceived);
});
const handleChange = e => setMessage(e.target.value);
const handleSendMessage = async () => {
socket.emit("SEND_MESSAGE", message);
await dispatch(sendMessage(message));
setMessage("");
};
return (
<div className="chatScreen">
<div className="">HI</div>
<input
value={message}
onChange={handleChange}
placeholder="Your message here..."
/>
<div className="sendBtn" onClick={handleSendMessage}>
Send
</div>
<div className="messagesContainer">
{chatsFromState.map((chat, i) => (
<div className="messageBox" key={i}>
message : {chat.message}
</div>
))}
</div>
</div>
);
};
export default ChatScreen;