summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/hooks/useIsOnline.ts
blob: 8d26bf3b6c232d33da613a353c33bb9dde14daf2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import { codecForBoolean } from "@gnu-taler/taler-util";
import { buildStorageKey, useMemoryStorage } from "@gnu-taler/web-util/browser";
import { platform } from "../platform/foreground.js";
import { useEffect } from "preact/hooks";

export function useIsOnline(): boolean {
  const { value, update } = useMemoryStorage("online", true);
  useEffect(() => {
    return platform.listenNetworkConnectionState((state) => {
      update(state === "on");
    });
  });
  return value;
}