From ee73c04b1212b4fdabc9464a034a82bafc103b9d Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Tue, 22 Oct 2024 16:25:51 -0300 Subject: [PATCH] fix: audio only playing once --- .../notification/achievement-notification.tsx | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/renderer/src/pages/achievements/notification/achievement-notification.tsx b/src/renderer/src/pages/achievements/notification/achievement-notification.tsx index ec8e2d8a..cb1d695c 100644 --- a/src/renderer/src/pages/achievements/notification/achievement-notification.tsx +++ b/src/renderer/src/pages/achievements/notification/achievement-notification.tsx @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { useCallback, useEffect, useRef, useState } from "react"; import achievementSound from "@renderer/assets/audio/achievement.wav"; import { useTranslation } from "react-i18next"; import * as styles from "./achievement-notification.css"; @@ -24,11 +24,10 @@ export function AchievementNotification() { const closingAnimation = useRef(-1); const visibleAnimation = useRef(-1); - const audio = useMemo(() => { + const playAudio = useCallback(() => { const audio = new Audio(achievementSound); audio.volume = 0.2; - audio.preload = "auto"; - return audio; + audio.play(); }, []); useEffect(() => { @@ -47,14 +46,14 @@ export function AchievementNotification() { }, ]); - audio.play(); + playAudio(); } ); return () => { unsubscribe(); }; - }, [audio]); + }, [playAudio]); useEffect(() => { const unsubscribe = window.electron.onAchievementUnlocked( @@ -63,14 +62,14 @@ export function AchievementNotification() { setAchievements((ach) => ach.concat(achievements)); - audio.play(); + playAudio(); } ); return () => { unsubscribe(); }; - }, [audio]); + }, [playAudio]); const hasAchievementsPending = achievements.length > 0;