summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/hooks/useProviderStatus.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-webextension/src/hooks/useProviderStatus.ts')
-rw-r--r--packages/taler-wallet-webextension/src/hooks/useProviderStatus.ts34
1 files changed, 34 insertions, 0 deletions
diff --git a/packages/taler-wallet-webextension/src/hooks/useProviderStatus.ts b/packages/taler-wallet-webextension/src/hooks/useProviderStatus.ts
new file mode 100644
index 000000000..42eab5d80
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/hooks/useProviderStatus.ts
@@ -0,0 +1,34 @@
+import { ProviderInfo } from "@gnu-taler/taler-wallet-core";
+import { useEffect, useState } from "preact/hooks";
+import * as wxApi from "../wxApi";
+
+export interface ProviderStatus {
+ info?: ProviderInfo;
+ sync: () => Promise<void>;
+}
+
+export function useProviderStatus(url: string): ProviderStatus | undefined {
+ const [status, setStatus] = useState<ProviderStatus | undefined>(undefined);
+
+ useEffect(() => {
+ async function run() {
+ //create a first list of backup info by currency
+ const status = await wxApi.getBackupInfo();
+
+ const providers = status.providers.filter(p => p.syncProviderBaseUrl === url);
+ const info = providers.length ? providers[0] : undefined;
+
+ async function sync() {
+ console.log("que tiene info", info)
+ if (info) {
+ await wxApi.syncOneProvider(info.syncProviderBaseUrl);
+ }
+ }
+
+ setStatus({ info, sync });
+ }
+ run();
+ }, []);
+
+ return status;
+}