UNPKG

@zezosoft/zezo-ott-react-native-video-player

Version:

Production-ready React Native OTT video player library for Android & iOS. Features: playlists, seasons, auto-next playback, subtitles (SRT/VTT), custom theming, analytics tracking, fullscreen mode, gesture controls, ads player (pre-roll/mid-roll/post-roll

33 lines (27 loc) 1.05 kB
import { useEffect, useRef } from 'react'; import { Animated } from 'react-native'; import { useVideoPlayerStore } from '../../VideoPlayer/store/videoPlayerStore'; import { useAdsPlayerStore } from '../store/adsPlayerStore'; import { hideAdControls } from './controls'; export const useAdControlsAutoHide = (): Animated.Value => { const { controlsVisible, controlsTimer } = useVideoPlayerStore(); const { isAdPaused } = useAdsPlayerStore(); const timeoutId = useRef<NodeJS.Timeout | null>(null); const fadeAnim = useRef(new Animated.Value(0)).current; useEffect(() => { Animated.timing(fadeAnim, { toValue: controlsVisible ? 1 : 0, duration: 200, useNativeDriver: true, }).start(); if (controlsVisible && !isAdPaused) { timeoutId.current = setTimeout(() => { hideAdControls(); }, controlsTimer * 1000); } return () => { if (timeoutId.current) clearTimeout(timeoutId.current); }; }, [controlsVisible, controlsTimer, fadeAnim, isAdPaused]); return fadeAnim; };