import buySound from '../assets/sounds/buy.mp3';

let buyAudio: HTMLAudioElement | null = null;
let unlocked = false;

export const primeSounds = () => {
  try {
    if (unlocked) return;

    if (!buyAudio) {
      buyAudio = new Audio(buySound);
      buyAudio.volume = 0; // тихо, чтобы не слышно
    }

    // попытка "разлочить" аудио в контексте user gesture
    const p = buyAudio.play();
    if (p && typeof (p as Promise<void>).then === 'function') {
      (p as Promise<void>)
        .then(() => {
          buyAudio?.pause();
          if (buyAudio) buyAudio.currentTime = 0;
          if (buyAudio) buyAudio.volume = 0.6; // вернуть норм громкость
          unlocked = true;
        })
        .catch(() => {
          // если заблокировано — попробуем снова при следующем клике
        });
    } else {
      // на всякий: если play синхронный
      buyAudio.pause();
      buyAudio.currentTime = 0;
      buyAudio.volume = 0.6;
      unlocked = true;
    }
  } catch {
    // не ломаем UI
  }
};

export const playBuySound = () => {
  try {
    if (!buyAudio) {
      buyAudio = new Audio(buySound);
      buyAudio.volume = 0.6;
    }

    buyAudio.currentTime = 0;
    buyAudio.play().catch(() => {});
  } catch {
    // игнор
  }
};
