summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/hooks/useBackupDeviceName.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-webextension/src/hooks/useBackupDeviceName.ts')
-rw-r--r--packages/taler-wallet-webextension/src/hooks/useBackupDeviceName.ts34
1 files changed, 34 insertions, 0 deletions
diff --git a/packages/taler-wallet-webextension/src/hooks/useBackupDeviceName.ts b/packages/taler-wallet-webextension/src/hooks/useBackupDeviceName.ts
new file mode 100644
index 000000000..e322c6727
--- /dev/null
+++ b/packages/taler-wallet-webextension/src/hooks/useBackupDeviceName.ts
@@ -0,0 +1,34 @@
+import { useEffect, useState } from "preact/hooks";
+import * as wxApi from "../wxApi";
+
+
+export interface BackupDeviceName {
+ name: string;
+ update: (s:string) => Promise<void>
+}
+
+
+export function useBackupDeviceName(): BackupDeviceName {
+ const [status, setStatus] = useState<BackupDeviceName>({
+ name: '',
+ update: () => Promise.resolve()
+ })
+
+ useEffect(() => {
+ async function run() {
+ //create a first list of backup info by currency
+ const status = await wxApi.getBackupInfo()
+
+ async function update(newName: string) {
+ await wxApi.setWalletDeviceId(newName)
+ setStatus(old => ({ ...old, name: newName }))
+ }
+
+ setStatus({ name: status.deviceId, update })
+ }
+ run()
+ }, [])
+
+ return status
+}
+