diff --git a/web-chat/src/Room.tsx b/web-chat/src/Room.tsx index 8290724a8a..02f03a881f 100644 --- a/web-chat/src/Room.tsx +++ b/web-chat/src/Room.tsx @@ -5,10 +5,13 @@ import { ListItem, ListItemText } from '@material-ui/core'; -import React from 'react'; +import React, { useState } from 'react'; import { ChatMessage } from 'waku-chat/chat_message'; +import { WakuMessage } from 'waku/waku_message'; +import { ChatContentTopic } from './App'; import MessageInput from './MessageInput'; import Send from './Send'; +import { useWaku } from './WakuContext'; interface Props { lines: ChatMessage[], @@ -19,43 +22,43 @@ interface State { } -export default class Room extends React.Component { - constructor(props: Props) { - super(props); +export default function Room (props :Props) { + let [state, setState] = useState({ messageToSend: '' }); + const { waku } = useWaku(); - this.state = { messageToSend: '' }; + const messageHandler = (msg: string) => { + setState({ messageToSend: msg }); } - messageHandler(msg: string) { - this.setState({ messageToSend: msg }); + const sendMessage = async () => { + const chatMessage = new ChatMessage(new Date(), 'web-chat', state.messageToSend); + const wakuMsg = WakuMessage.fromBytes(chatMessage.encode(), ChatContentTopic); + await waku!.relay.send(wakuMsg); } - - render() { return ( - + - + - + ); - } } interface LinesProps { diff --git a/web-chat/src/Send.tsx b/web-chat/src/Send.tsx index a45f596764..29d97a9e6e 100644 --- a/web-chat/src/Send.tsx +++ b/web-chat/src/Send.tsx @@ -1,26 +1,13 @@ import React from 'react'; -import { ChatMessage } from 'waku-chat/chat_message'; -import { WakuMessage } from 'waku/waku_message'; -import { ChatContentTopic } from './App'; -import { useWaku } from './WakuContext'; import { Button } from '@material-ui/core'; interface Props { - message: string + sendMessage: () => void } const Send = (props: Props) => { - const { waku } = useWaku(); - - const handleClick = async () => { - const chatMessage = new ChatMessage(new Date(), 'web-chat', props.message); - - const wakuMsg = WakuMessage.fromBytes(chatMessage.encode(), ChatContentTopic); - await waku!.relay.send(wakuMsg); - }; - return ( - );