From 4d5a5433308870181dd837cb55775a6746d02bac Mon Sep 17 00:00:00 2001 From: Half-Shot Date: Tue, 3 Dec 2024 14:47:01 +0000 Subject: [PATCH] only play one sound per reaction type --- src/room/ReactionAudioRenderer.tsx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/room/ReactionAudioRenderer.tsx b/src/room/ReactionAudioRenderer.tsx index 607e4890..7f1ca6f7 100644 --- a/src/room/ReactionAudioRenderer.tsx +++ b/src/room/ReactionAudioRenderer.tsx @@ -38,13 +38,18 @@ export function ReactionsAudioRenderer(): ReactNode { if (!shouldPlay) { return; } - for (const [sender, reaction] of Object.entries(reactions)) { - if (oldReactions[sender]) { + const oldReactionSet = new Set( + Object.values(oldReactions).map((r) => r.name), + ); + for (const reactionName of new Set( + Object.values(reactions).map((r) => r.name), + )) { + if (oldReactionSet.has(reactionName)) { // Don't replay old reactions return; } - if (SoundMap[reaction.name]) { - audioEngineCtx.playSound(reaction.name); + if (SoundMap[reactionName]) { + audioEngineCtx.playSound(reactionName); } else { // Fallback sounds. audioEngineCtx.playSound("generic");