import { useCallback, useRef } from "react";

import HowlManager, { type HowlLoadOptions } from "@/helpers/howler";

export default function useHowler() {
  const howlManager = useRef(HowlManager.getInstance());

  const load = useCallback(
    (src: string | string[], options?: HowlLoadOptions) => {
      howlManager.current.load(src, options);
    },
    [],
  );

  const play = useCallback(() => {
    howlManager.current.play();
  }, []);

  const stop = useCallback(() => {
    howlManager.current.stop();
  }, []);

  return { load, play, stop };
}
