aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/hooks/useProviderStatus.ts
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2021-07-08 15:23:53 -0300
committerSebastian <sebasjm@gmail.com>2021-07-08 15:23:58 -0300
commit655c5fc18a22ae167160dd93e53d87e130fa9afa (patch)
tree1484a9e23b1f1021eba0ea05a6735d3f7141011d /packages/taler-wallet-webextension/src/hooks/useProviderStatus.ts
parentba995882ba1dcb4f761059065fd32e31c3ff1f8b (diff)
downloadwallet-core-655c5fc18a22ae167160dd93e53d87e130fa9afa.tar.xz
add more backup stories, sync by one provider
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;
+}