aboutsummaryrefslogtreecommitdiff
path: root/vnext/src/ui/Chat.js
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2019-11-14 13:44:52 +0300
committerGravatar Vitaly Takmazov2023-01-13 10:37:55 +0300
commit841ec978bae3297357c3157a3adf846648771770 (patch)
tree7163d3a814fd68193f04415e5f1aeaf8a2cfd0a4 /vnext/src/ui/Chat.js
parent3900358ca6eeac546cbe0eb0bd36572ddc404634 (diff)
react-router-dom hooks
Diffstat (limited to 'vnext/src/ui/Chat.js')
-rw-r--r--vnext/src/ui/Chat.js15
1 files changed, 8 insertions, 7 deletions
diff --git a/vnext/src/ui/Chat.js b/vnext/src/ui/Chat.js
index 00e8eb3c..90c99c27 100644
--- a/vnext/src/ui/Chat.js
+++ b/vnext/src/ui/Chat.js
@@ -1,4 +1,5 @@
import React, { useEffect, useState, useCallback } from 'react';
+import { useParams } from 'react-router-dom';
import moment from 'moment';
import PM from './PM';
@@ -13,7 +14,6 @@ import './Chat.css';
* @typedef {Object} ChatProps
* @property {import('../api').SecureUser} visitor
* @property {EventSource} connection
- * @property {import('react-router').match} match
*/
/**
@@ -22,6 +22,7 @@ import './Chat.css';
*/
export default function Chat(props) {
const [chats, setChats] = useState([]);
+ const params = useParams();
let loadChat = useCallback((uname) => {
const { hash } = props.visitor;
@@ -36,32 +37,32 @@ export default function Chat(props) {
let onMessage = useCallback((json) => {
const msg = JSON.parse(json.data);
- if (msg.user.uname === props.match.params.user) {
+ if (msg.user.uname === params.user) {
setChats((oldChat) => {
return [msg, ...oldChat];
});
}
- }, [props.match.params.user]);
+ }, [params.user]);
let onSend = (template) => {
pm(template.to.uname, template.body)
.then(res => {
- loadChat(props.match.params.user);
+ loadChat(params.user);
}).catch(console.log);
};
useEffect(() => {
if (props.connection.addEventListener) {
props.connection.addEventListener('msg', onMessage);
}
- loadChat(props.match.params.user);
+ loadChat(params.user);
console.log(props.connection);
return () => {
if (props.connection.removeEventListener) {
props.connection.removeEventListener('msg', onMessage);
}
};
- }, [props.connection, onMessage, loadChat, props.match.params.user]);
- const uname = props.match.params.user;
+ }, [props.connection, onMessage, loadChat, params.user]);
+ const uname = params.user;
return (
<div className="msg-cont">
<UserInfo user={uname} />