react-native-unit-components
Version:
Unit React Native components
26 lines (20 loc) • 791 B
text/typescript
/* eslint-disable @typescript-eslint/no-explicit-any */
import { useEffect, useRef, useState } from 'react';
import { AppState, AppStateStatus } from 'react-native';
const getIsAppActive = (currentAppState: AppStateStatus) => {
return currentAppState !== 'background' && currentAppState !== 'inactive';
};
export const useAppStateListener = () => {
const appState = useRef(AppState.currentState);
const [isAppActive, setIsAppActive] = useState<boolean>(getIsAppActive(appState.current));
useEffect(() => {
const subscription = AppState.addEventListener('change', nextAppState => {
appState.current = nextAppState;
setIsAppActive(getIsAppActive(appState.current));
});
return () => {
subscription.remove();
};
}, []);
return isAppActive;
};