Conference: correction détection déconnexion
This commit is contained in:
@ -13,22 +13,23 @@ const StatusThumbsUp = 'thumbs-up';
|
||||
const StatusThumbsDown = 'thumbs-down';
|
||||
const StatusNoVote = 'no-vote';
|
||||
|
||||
const HeartbeatInterval = 5000;
|
||||
|
||||
export const ConferencePage:FunctionComponent<ConferencePageProps> = () => {
|
||||
const { user } = useUserProfile();
|
||||
const { id, data, peers, setNickname, setEmail, ping, setStatus } = useConference();
|
||||
const { uuid, data, setNickname, setEmail, ping, setStatus, forget } = useConference();
|
||||
|
||||
const currentStatus = data.statuses[id];
|
||||
const currentStatus = data.statuses[uuid];
|
||||
|
||||
useEffect(() => {
|
||||
if (peers.length === 0) return;
|
||||
if (!id || (!user.name && !user.email)) return;
|
||||
if (!user.name && !user.email) return;
|
||||
setNickname(user.name || user.email.split('@')[0]);
|
||||
setEmail(user.email);
|
||||
}, [user.name, user.email, peers.length]);
|
||||
}, [user.name, user.email]);
|
||||
|
||||
useEffect(() => {
|
||||
ping();
|
||||
const intervalId = setInterval(() => ping(), 30000);
|
||||
const intervalId = setInterval(() => ping(), HeartbeatInterval);
|
||||
return () => clearInterval(intervalId);
|
||||
}, []);
|
||||
|
||||
@ -78,11 +79,21 @@ export const ConferencePage:FunctionComponent<ConferencePageProps> = () => {
|
||||
<h3 className="is-size-3">Assemblée</h3>
|
||||
<div className="columns mt-1">
|
||||
<UserCard className="column is-narrow"
|
||||
nickname={data.nicknames[id]}
|
||||
nickname={data.nicknames[uuid]}
|
||||
status={currentStatus}
|
||||
email={user.email} />
|
||||
{
|
||||
peers.map(p => {
|
||||
Object.keys(data.peers).map(p => {
|
||||
const now = new Date();
|
||||
const lastHeartBeat = new Date(data.peers[p]);
|
||||
|
||||
if (p === uuid) return null;
|
||||
|
||||
if (now.getTime() > lastHeartBeat.getTime() + HeartbeatInterval) {
|
||||
forget(p);
|
||||
return null;
|
||||
}
|
||||
|
||||
const nickname = data.nicknames[p] || '???';
|
||||
const email = data.emails[p] || '';
|
||||
return (
|
||||
|
Reference in New Issue
Block a user