import { useState } from "react"; import { isBrowser } from "@reins/utils"; import { useWindowEvent } from "hooks"; export type OnlineType = boolean; const getState = () => (isBrowser ? window.navigator.onLine : true); /** * * @kind 01-Client * @param initialState * @returns */ export const useOnline = (initialState?: boolean): OnlineType => { const [online, setOnline] = useState(initialState ?? getState); useWindowEvent("online", () => setOnline(true)); useWindowEvent("offline", () => setOnline(false)); return online; };