UNPKG

@kirz/react-native-toolkit

Version:

Toolkit to speed up React Native development

35 lines (27 loc) 789 B
import { useEffect } from 'react'; import { AppState } from 'react-native'; export function useAppActivityEffect( callback: (initial?: boolean) => void, deps?: React.DependencyList, ) { useEffect(() => { let lastCheckTimestamp = 0; const onStateChanged = async (initial?: boolean) => { const newTimestamp = new Date().valueOf(); if (newTimestamp - lastCheckTimestamp < 2000) { return; // small delay for too frequent requests } lastCheckTimestamp = newTimestamp; callback(initial); }; const listener = AppState.addEventListener('change', async (state) => { if (state === 'active') { onStateChanged(); } }); onStateChanged(true); return () => { listener.remove(); }; }, deps); }