UNPKG

@applicaster/zapp-react-native-utils

Version:

Applicaster Zapp React Native utilities package

52 lines (47 loc) 1.39 kB
import * as React from "react"; import { playerManager } from "../../../appUtils"; import { skipIf } from "../utils"; type Props = { onClose: () => void; onFullscreenPlayerWillPresent: () => void; onFullscreenPlayerWillDismiss: () => void; onEnded: () => void; toggleLock: (event: { locked: boolean }) => void; skipAllEffects: boolean; isRunningPlayNext: boolean; }; export const usePlayerManager = ({ onClose, onFullscreenPlayerWillPresent, onFullscreenPlayerWillDismiss, onEnded, toggleLock, skipAllEffects, isRunningPlayNext, }: Props) => { React.useEffect( skipIf(skipAllEffects, () => { playerManager .on("close", onClose) .on("onFullscreenPlayerWillPresent", onFullscreenPlayerWillPresent) .on("onFullscreenPlayerWillDismiss", onFullscreenPlayerWillDismiss) .on("ended", onEnded) .on("toggleLock", toggleLock); return () => { playerManager .removeHandler("close", onClose) .removeHandler( "onFullscreenPlayerWillPresent", onFullscreenPlayerWillPresent ) .removeHandler( "onFullscreenPlayerWillDismiss", onFullscreenPlayerWillDismiss ) .removeHandler("ended", onEnded) .removeHandler("toggleLock", onEnded); }; }), [skipAllEffects, isRunningPlayNext] ); };