react-native-video-zoom-control
Version:
A video player overlay for React Native Video that supports pinch-to-zoom and multiple video renditions.
54 lines • 1.77 kB
JavaScript
import { useRef } from 'react';
import { Animated } from 'react-native';
export const useJSAnimations = function () {
let controlAnimationTiming = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 450;
const bottomControlMarginBottom = useRef(new Animated.Value(0)).current;
const controlsOpacity = useRef(new Animated.Value(1)).current;
const topControlMarginTop = useRef(new Animated.Value(0)).current;
const hideControlAnimation = () => {
Animated.parallel([Animated.timing(controlsOpacity, {
toValue: 0,
duration: controlAnimationTiming,
useNativeDriver: false
}), Animated.timing(topControlMarginTop, {
toValue: -100,
duration: controlAnimationTiming,
useNativeDriver: false
}), Animated.timing(bottomControlMarginBottom, {
toValue: -100,
duration: controlAnimationTiming,
useNativeDriver: false
})]).start();
};
const showControlAnimation = () => {
Animated.parallel([Animated.timing(controlsOpacity, {
toValue: 1,
duration: controlAnimationTiming,
useNativeDriver: false
}), Animated.timing(topControlMarginTop, {
toValue: 0,
duration: controlAnimationTiming,
useNativeDriver: false
}), Animated.timing(bottomControlMarginBottom, {
toValue: 0,
duration: controlAnimationTiming,
useNativeDriver: false
})]).start();
};
const animations = {
bottomControl: {
marginBottom: bottomControlMarginBottom
},
topControl: {
marginTop: topControlMarginTop
},
controlsOpacity: {
opacity: controlsOpacity
},
showControlAnimation,
hideControlAnimation,
AnimatedView: Animated.View
};
return animations;
};
//# sourceMappingURL=useAnimations.js.map