@kirz/react-native-toolkit
Version:
Toolkit to speed up React Native development
26 lines (25 loc) • 758 B
JavaScript
import { useEffect } from 'react';
import { AppState } from 'react-native';
export function useAppActivityEffect(callback, deps) {
useEffect(() => {
let lastCheckTimestamp = 0;
const onStateChanged = async initial => {
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);
}
//# sourceMappingURL=useAppActivityEffect.js.map