fix: Sync currentTime when user selects a frame in timeline
This commit is contained in:
@@ -88,6 +88,23 @@ export function PreviewPlayer() {
|
||||
|
||||
const selectedFrame = storyboard?.frames.find((f) => f.id === selectedFrameId)
|
||||
|
||||
// Sync currentTime when user selects a frame (not during playback)
|
||||
useEffect(() => {
|
||||
if (isPlaying || !storyboard?.frames.length || !selectedFrameId) return
|
||||
|
||||
// Calculate start time of selected frame
|
||||
let startTime = 0
|
||||
for (const frame of storyboard.frames) {
|
||||
if (frame.id === selectedFrameId) break
|
||||
startTime += frame.duration
|
||||
}
|
||||
|
||||
// Only update if different (avoid infinite loop)
|
||||
if (Math.abs(currentTime - startTime) > 0.1) {
|
||||
setCurrentTime(startTime)
|
||||
}
|
||||
}, [selectedFrameId, isPlaying])
|
||||
|
||||
// Audio playback sync
|
||||
useEffect(() => {
|
||||
if (!audioRef.current) return
|
||||
|
||||
Reference in New Issue
Block a user