From 486ea63a8a9c356b36de04a37ba9d54e5aefef0e Mon Sep 17 00:00:00 2001 From: chrisk325 Date: Sun, 4 Jan 2026 14:33:16 +0530 Subject: [PATCH] fixing exo crash and some UI flaws --- .../player/controls/PlayerControls.tsx | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/src/components/player/controls/PlayerControls.tsx b/src/components/player/controls/PlayerControls.tsx index 444666c3..2a78f050 100644 --- a/src/components/player/controls/PlayerControls.tsx +++ b/src/components/player/controls/PlayerControls.tsx @@ -115,6 +115,13 @@ export const PlayerControls: React.FC = ({ /* Animations - State & Refs */ const [showBackwardSign, setShowBackwardSign] = React.useState(false); const [showForwardSign, setShowForwardSign] = React.useState(false); + const [previewTime, setPreviewTime] = React.useState(currentTime); + const isSlidingRef = React.useRef(false); + React.useEffect(() => { + if (!isSlidingRef.current) { + setPreviewTime(currentTime); + } + }, [currentTime]); /* Separate Animations for Each Button */ const backwardPressAnim = React.useRef(new Animated.Value(0)).current; @@ -280,10 +287,22 @@ export const PlayerControls: React.FC = ({ }} minimumValue={0} maximumValue={duration || 1} - value={currentTime} - onValueChange={onSliderValueChange} - onSlidingStart={onSlidingStart} - onSlidingComplete={onSlidingComplete} + + value={previewTime} + + onValueChange={(v) => setPreviewTime(v)} + + onSlidingStart={() => { + isSlidingRef.current = true; + onSlidingStart(); + }} + + onSlidingComplete={(v) => { + isSlidingRef.current = false; + setPreviewTime(v); + onSlidingComplete(v); + }} + minimumTrackTintColor={currentTheme.colors.primary} maximumTrackTintColor={currentTheme.colors.mediumEmphasis} thumbTintColor={Platform.OS === 'android' ? currentTheme.colors.white : undefined} @@ -608,4 +627,4 @@ export const PlayerControls: React.FC = ({ ); }; -export default PlayerControls; \ No newline at end of file +export default PlayerControls;