fix: sfx issue, closes #80

This commit is contained in:
neoapps-dev 2026-06-22 22:29:03 +03:00
parent b3162d4e02
commit 587d1983b8

View file

@ -1,4 +1,4 @@
import { useEffect } from "react";
import { useEffect, useRef } from "react";
import { motion, AnimatePresence } from "framer-motion";
import { useAudio } from "../../context/LauncherContext";
@ -18,20 +18,28 @@ export function AchievementToast({
variant = "error",
}: AchievementToastProps) {
const { playSfx } = useAudio();
const prevMessage = useRef(message);
useEffect(() => {
if (message) {
const wasNull = !prevMessage.current;
const isNull = !message;
prevMessage.current = message;
if (message && wasNull) {
if (variant === "update") {
playSfx("notification.ogg");
} else {
playSfx("in.ogg");
}
}
if (message) {
const timer = setTimeout(() => {
onClose();
}, 8000);
return () => {
clearTimeout(timer);
playSfx("out.ogg");
if (isNull) {
playSfx("out.ogg");
}
};
}
}, [message, onClose, variant, playSfx]);