clamp
This commit is contained in:
parent
2b741e2d47
commit
92942bc07e
|
@ -26,6 +26,13 @@ interface ISeek {
|
||||||
onChangeTime: (time: number) => Promise<void>;
|
onChangeTime: (time: number) => Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Could use from react-native-redash. We have it as dev dep already.
|
||||||
|
function clamp(value: number, min: number, max: number) {
|
||||||
|
'worklet';
|
||||||
|
|
||||||
|
return Math.min(Math.max(value, min), max);
|
||||||
|
}
|
||||||
|
|
||||||
const Seek = ({ currentTime, duration, loaded = false, onChangeTime }: ISeek) => {
|
const Seek = ({ currentTime, duration, loaded = false, onChangeTime }: ISeek) => {
|
||||||
const { colors } = useTheme();
|
const { colors } = useTheme();
|
||||||
|
|
||||||
|
@ -54,14 +61,7 @@ const Seek = ({ currentTime, duration, loaded = false, onChangeTime }: ISeek) =>
|
||||||
ctx.startX = timePosition.value;
|
ctx.startX = timePosition.value;
|
||||||
},
|
},
|
||||||
onActive: (event, ctx: any) => {
|
onActive: (event, ctx: any) => {
|
||||||
const moveInX: number = ctx.startX + event.translationX;
|
timePosition.value = clamp(ctx.startX + event.translationX, 0, maxWidth.value);
|
||||||
if (moveInX < 0) {
|
|
||||||
timePosition.value = 0;
|
|
||||||
} else if (moveInX > maxWidth.value) {
|
|
||||||
timePosition.value = maxWidth.value;
|
|
||||||
} else {
|
|
||||||
timePosition.value = moveInX;
|
|
||||||
}
|
|
||||||
isTimeChanged.value = true;
|
isTimeChanged.value = true;
|
||||||
scale.value = 1.3;
|
scale.value = 1.3;
|
||||||
currentTime.value = (timePosition.value * duration.value) / maxWidth.value || 0;
|
currentTime.value = (timePosition.value * duration.value) / maxWidth.value || 0;
|
||||||
|
|
Loading…
Reference in New Issue