2021-02-20 17:07:10 +01:00
|
|
|
import { useEffect } from 'react';
|
|
|
|
import { AppState, AppStateStatus } from 'react-native';
|
|
|
|
import { useCachedState } from './useCachedState';
|
2021-02-19 18:53:08 +01:00
|
|
|
|
|
|
|
export const useIsForeground = (): boolean => {
|
|
|
|
const [isForeground, setIsForeground] = useCachedState(true);
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
const onChange = (state: AppStateStatus) => {
|
2021-02-20 17:07:10 +01:00
|
|
|
setIsForeground(state === 'active');
|
2021-02-19 18:53:08 +01:00
|
|
|
};
|
2021-02-20 17:07:10 +01:00
|
|
|
AppState.addEventListener('change', onChange);
|
|
|
|
return () => AppState.removeEventListener('change', onChange);
|
2021-02-19 18:53:08 +01:00
|
|
|
}, [setIsForeground]);
|
|
|
|
|
|
|
|
return isForeground;
|
2021-02-20 17:07:10 +01:00
|
|
|
};
|