diff options
Diffstat (limited to 'vnext/src/components')
-rw-r--r-- | vnext/src/components/Chat.js | 12 | ||||
-rw-r--r-- | vnext/src/components/Thread.js | 8 |
2 files changed, 10 insertions, 10 deletions
diff --git a/vnext/src/components/Chat.js b/vnext/src/components/Chat.js index 8c1e2311..a1254a10 100644 --- a/vnext/src/components/Chat.js +++ b/vnext/src/components/Chat.js @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useState, useCallback } from 'react'; import PropTypes from 'prop-types'; import ReactRouterPropTypes from 'react-router-prop-types'; import { UserType } from './Types'; @@ -25,9 +25,9 @@ export default function Chat(props) { props.connection.removeEventListener('msg', onMessage); } }; - }, [props.connection.readyState]); + }, [props.connection, onMessage, loadChat, props.match.params.user]); - let loadChat = (uname) => { + let loadChat = useCallback((uname) => { const { hash } = props.visitor; setChats([]); if (hash && uname) { @@ -36,16 +36,16 @@ export default function Chat(props) { setChats(response.data); }); } - }; + }, [props.visitor]); - let onMessage = (json) => { + let onMessage = useCallback((json) => { const msg = JSON.parse(json.data); if (msg.user.uname === props.match.params.user) { setChats((oldChat) => { return [msg, ...oldChat]; }); } - }; + }, [props.match.params.user]); let onSend = (template) => { pm(template.to.uname, template.body) diff --git a/vnext/src/components/Thread.js b/vnext/src/components/Thread.js index 66b5fd62..e7ccb032 100644 --- a/vnext/src/components/Thread.js +++ b/vnext/src/components/Thread.js @@ -87,7 +87,7 @@ export default function Thread(props) { useEffect(() => { setActive(0); loadReplies(); - }, []); + }, [loadReplies]); useEffect(() => { if (props.connection.addEventListener && message.mid) { props.connection.addEventListener('msg', onReply); @@ -96,8 +96,8 @@ export default function Thread(props) { if (props.connection.removeEventListener && message.mid) { props.connection.removeEventListener('msg', onReply); } - } - }, [props.connection, message.mid]); + }; + }, [props.connection, message.mid, onReply]); let loadReplies = useCallback(() => { document.body.scrollTop = 0; @@ -122,7 +122,7 @@ export default function Thread(props) { ).catch(ex => { console.log(ex); }); - }, []); + }, [props.visitor, props.match.params]); let onReply = useCallback((json) => { const msg = JSON.parse(json.data); if (msg.mid == message.mid) { |