Files
desa-darmasaba/src/app/darmasaba/(pages)/musik/lib/seek.ts
nico 91e32f3f1c fix(musik): fix seek slider reset ke 0 - root cause: useEffect dependency
ROOT CAUSE:
- filteredMusik di-calculate ulang setiap render (.filter() tanpa memoization)
- currentSong = filteredMusik[currentSongIndex] → object reference baru setiap render
- useEffect dependency [currentSong, currentSongIndex] trigger setiap render
- useEffect reset setCurrentTime(0) → slider kembali ke awal

FIX:
1. useMemo untuk filteredMusik - mencegah re-calculate setiap render
2. useEffect dependency [currentSong?.id, currentSongIndex] - hanya trigger saat lagu benar-benar berubah
3. Hapus semua debug console.log yang tidak diperlukan
4. Simplifikasi seekTo function

File Changed:
- src/app/darmasaba/(pages)/musik/musik-desa/page.tsx
- src/app/darmasaba/(pages)/musik/lib/seek.ts

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-02 12:03:26 +08:00

16 lines
336 B
TypeScript

export function seekTo(
audioRef: React.RefObject<HTMLAudioElement | null>,
time: number,
setCurrentTime?: (v: number) => void
) {
if (!audioRef.current) return;
// Set waktu audio
audioRef.current.currentTime = time;
// Update state jika provided
if (setCurrentTime) {
setCurrentTime(Math.round(time));
}
}