From bbfb81c2bc8d6afba550299e7138eeb2c58956d3 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Mon, 8 Apr 2019 12:28:42 +0300 Subject: Pass EventSource connection to child components --- vnext/src/components/Thread.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'vnext/src/components/Thread.js') diff --git a/vnext/src/components/Thread.js b/vnext/src/components/Thread.js index 4946cf5f..d61fd87f 100644 --- a/vnext/src/components/Thread.js +++ b/vnext/src/components/Thread.js @@ -22,8 +22,12 @@ export default function Thread(props) { const [loading, setLoading] = useState(false); const [active, setActive] = useState(0); useEffect(() => { + props.connection.addEventListener('msg', onReply); setActive(0); loadReplies(); + return () => { + props.connection.removeEventListener('msg', onReply); + } }, []); let loadReplies = () => { document.body.scrollTop = 0; @@ -49,11 +53,10 @@ export default function Thread(props) { console.log(ex); }); } - let onReply = (msg) => { + let onReply = (json) => { + const msg = JSON.parse(json); if (msg.mid == message.mid) { - this.setState({ - replies: [...this.state.replies, msg] - }); + setReplies([...this.state.replies, msg]); } } let postComment = (template) => { -- cgit v1.2.3