- Integrate togglePlayPause, getNextIndex, getPrevIndex, handleRepeatOrNext, seekTo, toggleShuffle, setAudioVolume, toggleMute library functions - Fix ESLint warnings: remove unused eslint-disable, add missing useEffect dependencies - Fix ESLint error in useMusicPlayer.ts togglePlayPause function - Add force-dynamic export to root layout to prevent prerendering errors - Improve seek slider with preview/commit functionality - Add isSeeking state to prevent UI flickering during seek Fixes: Build PageNotFoundError for admin/darmasaba pages Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
29 lines
606 B
TypeScript
29 lines
606 B
TypeScript
import { RefObject } from "react";
|
|
|
|
export function setAudioVolume(
|
|
audioRef: RefObject<HTMLAudioElement | null>,
|
|
volume: number,
|
|
setVolume: (v: number) => void,
|
|
setIsMuted: (v: boolean) => void
|
|
) {
|
|
if (!audioRef.current) return;
|
|
|
|
audioRef.current.volume = volume / 100;
|
|
setVolume(volume);
|
|
|
|
if (volume > 0) {
|
|
setIsMuted(false);
|
|
}
|
|
}
|
|
|
|
export function toggleMute(
|
|
audioRef: RefObject<HTMLAudioElement | null>,
|
|
isMuted: boolean,
|
|
setIsMuted: (v: boolean) => void
|
|
) {
|
|
if (!audioRef.current) return;
|
|
|
|
const muted = !isMuted;
|
|
audioRef.current.muted = muted;
|
|
setIsMuted(muted);
|
|
} |