MCPcopy Create free account
hub / github.com/cloudflare/meet / useUserJoinLeaveToasts

Function useUserJoinLeaveToasts

app/hooks/useUserJoinLeaveToasts.tsx:37–62  ·  view source on GitHub ↗
(users: User[])

Source from the content-addressed store, hash-verified

35}
36
37export function useUserJoinLeaveToasts(users: User[]) {
38 const [trackedUsers, setTrackedUsers] = useState(users)
39 const dispatchToast = useDispatchToast()
40
41 useEffect(() => {
42 const newUsers = users.filter(
43 (u) => !trackedUsers.some((tu) => tu.id === u.id)
44 )
45
46 const usersLeft = trackedUsers.filter(
47 (u) => !users.some((tu) => tu.id === u.id)
48 )
49
50 newUsers.forEach((u) =>
51 dispatchToast(<UserJoinedOrLeftToast user={u} type="joined" />)
52 )
53
54 usersLeft.forEach((u) =>
55 dispatchToast(<UserJoinedOrLeftToast user={u} type="left" />)
56 )
57 }, [dispatchToast, trackedUsers, users])
58
59 useEffect(() => {
60 setTrackedUsers(users)
61 }, [users])
62}

Callers 1

JoinedRoomFunction · 0.90

Calls 1

useDispatchToastFunction · 0.90

Tested by

no test coverage detected