@kirz/react-native-toolkit
Version:
Toolkit to speed up React Native development
32 lines (30 loc) • 908 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useAppActivityEffect = useAppActivityEffect;
var _react = require("react");
var _reactNative = require("react-native");
function useAppActivityEffect(callback, deps) {
(0, _react.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 = _reactNative.AppState.addEventListener('change', async state => {
if (state === 'active') {
onStateChanged();
}
});
onStateChanged(true);
return () => {
listener.remove();
};
}, deps);
}
//# sourceMappingURL=useAppActivityEffect.js.map