🩹(frontend) clean up notifications when participant quits
When a participant leaves a videoconference, remove all notifications they authored. It's generally unnecessary to keep notifications about actions from users who are no longer present, with few exceptions. As we currently support only two notification types (Joined and Raised Hand), it's appropriate to close all of them when the author leaves the room.
This commit is contained in:
committed by
aleb_the_flash
parent
5dcbe56e56
commit
54d4330a97
@@ -34,19 +34,19 @@ export const MainNotificationToast = () => {
|
||||
}, [room, triggerNotificationSound])
|
||||
|
||||
useEffect(() => {
|
||||
const removeJoinNotification = (participant: Participant) => {
|
||||
const existingToast = toastQueue.visibleToasts.find(
|
||||
(toast) =>
|
||||
toast.content.participant === participant &&
|
||||
toast.content.type === NotificationType.Joined
|
||||
)
|
||||
if (existingToast) {
|
||||
toastQueue.close(existingToast.key)
|
||||
}
|
||||
const removeParticipantNotifications = (participant: Participant) => {
|
||||
toastQueue.visibleToasts.forEach((toast) => {
|
||||
if (toast.content.participant === participant) {
|
||||
toastQueue.close(toast.key)
|
||||
}
|
||||
})
|
||||
}
|
||||
room.on(RoomEvent.ParticipantDisconnected, removeJoinNotification)
|
||||
room.on(RoomEvent.ParticipantDisconnected, removeParticipantNotifications)
|
||||
return () => {
|
||||
room.off(RoomEvent.ParticipantConnected, removeJoinNotification)
|
||||
room.off(
|
||||
RoomEvent.ParticipantDisconnected,
|
||||
removeParticipantNotifications
|
||||
)
|
||||
}
|
||||
}, [room])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user