UNPKG

react-native-screenguard

Version:

A Native screenshot blocking library for React-Native developer, with background customizable after captured. Screenshot detector are also supported.

36 lines (35 loc) 1.31 kB
"use strict"; import { useEffect, useState, useRef } from 'react'; import { NativeEventEmitter, NativeModules, TurboModuleRegistry } from 'react-native'; import * as ScreenGuardConstants from './constant'; const NativeScreenGuard = TurboModuleRegistry.get('ScreenGuard') || NativeModules.ScreenGuard; const screenGuardEmitter = new NativeEventEmitter(NativeScreenGuard); export function useSGScreenRecord(listener) { const [recordingData, setRecordingData] = useState(null); const [activationStatus, setActivationStatus] = useState(null); const listenerRef = useRef(listener); useEffect(() => { listenerRef.current = listener; }, [listener]); useEffect(() => { if (!NativeScreenGuard) return; const recordingSubscription = screenGuardEmitter.addListener(ScreenGuardConstants.SCREEN_RECORDING_EVT, event => { setRecordingData(event); if (listenerRef.current) { listenerRef.current(event); } }); const statusSubscription = screenGuardEmitter.addListener(ScreenGuardConstants.SCREEN_GUARD_EVT, event => { setActivationStatus(event); }); return () => { recordingSubscription.remove(); statusSubscription.remove(); }; }, []); return { recordingData, activationStatus }; } //# sourceMappingURL=useSGScreenRecord.js.map