Skip to content

Commit 328566c

Browse files
committed
fix: memoize waveprogressbar gesture
1 parent 5d5a8df commit 328566c

File tree

1 file changed

+22
-18
lines changed

1 file changed

+22
-18
lines changed

package/src/components/ProgressControl/WaveProgressBar.tsx

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -118,24 +118,28 @@ export const WaveProgressBar = React.memo(
118118
},
119119
} = useTheme();
120120

121-
const pan = Gesture.Pan()
122-
.enabled(showProgressDrag)
123-
.maxPointers(1)
124-
.onStart(() => {
125-
if (onStartDrag) {
126-
runOnJS(onStartDrag)(state.value);
127-
}
128-
})
129-
.onUpdate((event) => {
130-
const newProgress = Math.max(0, Math.min(event.x / fullWidth, 1));
131-
state.value = newProgress;
132-
waveFormNumberFromProgress(newProgress);
133-
})
134-
.onEnd(() => {
135-
if (onEndDrag) {
136-
runOnJS(onEndDrag)(state.value);
137-
}
138-
});
121+
const pan = useMemo(
122+
() =>
123+
Gesture.Pan()
124+
.enabled(showProgressDrag)
125+
.maxPointers(1)
126+
.onStart(() => {
127+
if (onStartDrag) {
128+
runOnJS(onStartDrag)(state.value);
129+
}
130+
})
131+
.onUpdate((event) => {
132+
const newProgress = Math.max(0, Math.min(event.x / fullWidth, 1));
133+
state.value = newProgress;
134+
waveFormNumberFromProgress(newProgress);
135+
})
136+
.onEnd(() => {
137+
if (onEndDrag) {
138+
runOnJS(onEndDrag)(state.value);
139+
}
140+
}),
141+
[fullWidth, onEndDrag, onStartDrag, showProgressDrag, state, waveFormNumberFromProgress],
142+
);
139143

140144
const stringifiedWaveformData = waveformData.toString();
141145

0 commit comments

Comments
 (0)