From 18afc9370a4723f036ed8fbe493341804f816c81 Mon Sep 17 00:00:00 2001 From: Nuwan Date: Tue, 13 Jan 2026 23:40:08 +0530 Subject: [PATCH] feat(02-01): implement functional handleSeek Replace placeholder handleSeek with functional implementation that calls jamClient.SessionTrackSeekMs(). Uses optimistic UI update for responsive UX, then seeks the native client. Polling useEffect will sync actual position within 500ms to correct any drift. Co-Authored-By: Claude Sonnet 4.5 --- .../client/JKSessionBackingTrackPlayer.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/jam-ui/src/components/client/JKSessionBackingTrackPlayer.js b/jam-ui/src/components/client/JKSessionBackingTrackPlayer.js index 7af5fb5fb..8da52ff17 100644 --- a/jam-ui/src/components/client/JKSessionBackingTrackPlayer.js +++ b/jam-ui/src/components/client/JKSessionBackingTrackPlayer.js @@ -153,9 +153,18 @@ const JKSessionBackingTrackPlayer = ({ }; const handleSeek = async (e) => { - // Placeholder for seek functionality - // This would need to be implemented based on available jamClient methods - console.log('Seek to:', e.target.value); + const seekPositionMs = parseInt(e.target.value); + + try { + // Update local state immediately for responsive UI + setCurrentPositionMs(seekPositionMs); + setCurrentTime(formatTime(seekPositionMs)); + + // Seek the native client to the new position + await jamClient.SessionTrackSeekMs(seekPositionMs); + } catch (error) { + console.error('Error seeking:', error); + } }; const handleClose = async () => {