UNPKG

expo-pip

Version:

A library that provides access to Picture In Picture API for Android only

41 lines 1.34 kB
import { requireOptionalNativeModule } from "expo"; import { useEffect, useState } from "react"; import { Platform } from "react-native"; const ExpoPipModule = requireOptionalNativeModule("ExpoPip"); function addPictureInPictureModeListener(listener) { if (!ExpoPipModule) { console.warn("expo-pip is not properly linked or it's not supported on this platform."); return { remove: () => { }, }; } return ExpoPipModule.addListener("onPipModeChange", listener); } function useIsInPip() { const [isInPipMode, setInPipMode] = useState(false); useEffect(() => { const subscription = addPictureInPictureModeListener(({ isInPipMode }) => { setInPipMode(isInPipMode); }); return () => subscription.remove(); }, [setInPipMode]); return { isInPipMode }; } class ExpoPip { static useIsInPip; static isInPipMode() { return ExpoPipModule?.isInPipMode(); } static setPictureInPictureParams(options) { ExpoPipModule?.setPictureInPictureParams(options); } static enterPipMode(options) { ExpoPipModule?.enterPipMode(options); } static isAvailable() { return Platform.OS === "android"; } } ExpoPip.useIsInPip = useIsInPip; export default ExpoPip; //# sourceMappingURL=ExpoPipModule.js.map