/* eslint-disable no-redeclare */
import { AppState, AppStateStatus } from "react-native";
import * as React from "react";

export function useAppState(returnIsActive: true): boolean;

export function useAppState(returnIsActive?: false): AppStateStatus;

export function useAppState(returnIsActive) {
  const [appState, setAppState] = React.useState(AppState.currentState);

  const isActive = () => {
    return appState === "active";
  };

  React.useEffect(() => {
    AppState.addEventListener("change", setAppState);

    return () => {
      AppState.removeEventListener("change", setAppState);
    };
  }, []);

  return returnIsActive ? isActive() : appState;
}
