"use client"; import { useCallback, useEffect, useMemo } from "react"; export const useAudio = () => { const audio = useMemo(() => { if (typeof window !== "undefined") { const audioElement = new Audio("/audio/notification-new-message-1.wav"); audioElement.preload = "auto"; return audioElement; } return null; }, []); const _audioContext = useMemo(() => { if (typeof window !== "undefined") { return new (window.AudioContext || window.webkitAudioContext)(); } return null; }, []); useEffect(() => { if (!audio) return; const handleClick = () => { audio.currentTime = 0; audio.play(); setTimeout(() => { audio.pause(); }, 10); }; document.addEventListener("click", handleClick, { once: true }); return () => { document.removeEventListener("click", handleClick); }; }, [audio]); const playNewMessageNotification = useCallback(() => { if (!audio) return; audio.currentTime = 0; audio.play(); }, [audio]); return useMemo( () => ({ playNewMessageNotification, }), [playNewMessageNotification] ); };