diff options
author | Sebastian <sebasjm@gmail.com> | 2022-01-13 01:33:24 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2022-01-13 01:34:17 -0300 |
commit | cea0ac02b64c2a575a5788552e813d315e3f3096 (patch) | |
tree | 79c398a39610ac07c45c9ab7da30a64177fc6332 /packages/taler-wallet-webextension/src | |
parent | 4b289cde5d362c863bee84dc3aa8fbe06b747b41 (diff) | |
download | wallet-core-cea0ac02b64c2a575a5788552e813d315e3f3096.tar.xz |
import db from the wallet web extension
Diffstat (limited to 'packages/taler-wallet-webextension/src')
3 files changed, 39 insertions, 10 deletions
diff --git a/packages/taler-wallet-webextension/src/popup/DeveloperPage.tsx b/packages/taler-wallet-webextension/src/popup/DeveloperPage.tsx index 840398a44..ea87ba01f 100644 --- a/packages/taler-wallet-webextension/src/popup/DeveloperPage.tsx +++ b/packages/taler-wallet-webextension/src/popup/DeveloperPage.tsx @@ -18,7 +18,7 @@ import { NotificationType } from "@gnu-taler/taler-util"; import { PendingTaskInfo } from "@gnu-taler/taler-wallet-core"; import { format } from "date-fns"; import { Fragment, h, VNode } from "preact"; -import { useState } from "preact/hooks"; +import { useRef, useState } from "preact/hooks"; import { Diagnostics } from "../components/Diagnostics"; import { NotifyUpdateFadeOut } from "../components/styled"; import { Time } from "../components/Time"; @@ -83,11 +83,34 @@ export function View({ content, }); } + const fileRef = useRef<HTMLInputElement>(null); + async function onImportDatabase(str: string): Promise<void> { + return wxApi.importDB(JSON.parse(str)); + } return ( <div> <p>Debug tools:</p> <button onClick={confirmReset}>reset</button> <br /> + <button onClick={() => fileRef?.current?.click()}>import database</button> + <input + ref={fileRef} + style={{ display: "none" }} + type="file" + onChange={async (e) => { + const f: FileList | null = e.currentTarget.files; + if (!f || f.length != 1) { + return Promise.reject(); + } + const buf = await f[0].arrayBuffer(); + const str = new Uint8Array(buf).reduce( + (data, byte) => data + String.fromCharCode(byte), + "", + ); + return onImportDatabase(str); + }} + /> + <br /> <button onClick={onExportDatabase}>export database</button> {downloadedDatabase && ( <div> @@ -152,6 +175,8 @@ export function reload(): void { } } +function runIntegrationTest() {} + export async function confirmReset(): Promise<void> { if ( confirm( diff --git a/packages/taler-wallet-webextension/src/wallet/DepositPage.tsx b/packages/taler-wallet-webextension/src/wallet/DepositPage.tsx index 9e15daa97..abe830e87 100644 --- a/packages/taler-wallet-webextension/src/wallet/DepositPage.tsx +++ b/packages/taler-wallet-webextension/src/wallet/DepositPage.tsx @@ -110,7 +110,6 @@ export function View({ setAmount(num); setFee(undefined); } - const feeHasBeenCalculated = fee !== undefined; const currency = balance.currency; const amountStr: AmountString = `${currency}:${amount}`; const feeSum = @@ -151,7 +150,7 @@ export function View({ : !parsedAmount ? "Invalid amount" : Amounts.cmp(balance, parsedAmount) === -1 - ? `To much, your current balance is ${Amounts.stringifyValue(balance)}` + ? `Too much, your current balance is ${Amounts.stringifyValue(balance)}` : undefined; const totalToDeposit = parsedAmount @@ -159,7 +158,7 @@ export function View({ : Amounts.getZero(currency); const unableToDeposit = - Amounts.isZero(totalToDeposit) && feeHasBeenCalculated; + Amounts.isZero(totalToDeposit) || fee === undefined || error !== undefined; return ( <Fragment> @@ -224,12 +223,13 @@ export function View({ </section> <footer> <div /> - <ButtonPrimary - disabled={unableToDeposit} - onClick={() => onSend(accountURI, amountStr)} - > - Deposit {Amounts.stringifyValue(totalToDeposit)} {currency} - </ButtonPrimary> + {unableToDeposit ? ( + <ButtonPrimary disabled>Deposit</ButtonPrimary> + ) : ( + <ButtonPrimary onClick={() => onSend(accountURI, amountStr)}> + Deposit {Amounts.stringifyValue(totalToDeposit)} {currency} + </ButtonPrimary> + )} </footer> </Fragment> ); diff --git a/packages/taler-wallet-webextension/src/wxApi.ts b/packages/taler-wallet-webextension/src/wxApi.ts index dc96efc75..d02a017a1 100644 --- a/packages/taler-wallet-webextension/src/wxApi.ts +++ b/packages/taler-wallet-webextension/src/wxApi.ts @@ -376,6 +376,10 @@ export function exportDB(): Promise<any> { return callBackend("exportDb", {}); } +export function importDB(dump: any): Promise<void> { + return callBackend("importDb", { dump }) +} + export function onUpdateNotification(messageTypes: Array<NotificationType>, doCallback: () => void): () => void { // eslint-disable-next-line no-undef const port = chrome.runtime.connect({ name: "notifications" }); |