summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/wallet
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2024-02-22 12:42:54 +0100
committerFlorian Dold <florian@dold.me>2024-02-22 12:42:54 +0100
commit8153c5026f3e7a100564e6dd9944e054cbb1b910 (patch)
treeb6fb4e4ba17c9642268a8040cd8803751251e641 /packages/taler-wallet-webextension/src/wallet
parent012ba47d0bf669c258d703606a09c5d48922a58f (diff)
downloadwallet-core-8153c5026f3e7a100564e6dd9944e054cbb1b910.tar.gz
wallet-core-8153c5026f3e7a100564e6dd9944e054cbb1b910.tar.bz2
wallet-core-8153c5026f3e7a100564e6dd9944e054cbb1b910.zip
webextension: render more info about exchanges
Diffstat (limited to 'packages/taler-wallet-webextension/src/wallet')
-rw-r--r--packages/taler-wallet-webextension/src/wallet/AddExchange/test.ts15
-rw-r--r--packages/taler-wallet-webextension/src/wallet/DestinationSelection/test.ts3
-rw-r--r--packages/taler-wallet-webextension/src/wallet/Settings.tsx23
3 files changed, 31 insertions, 10 deletions
diff --git a/packages/taler-wallet-webextension/src/wallet/AddExchange/test.ts b/packages/taler-wallet-webextension/src/wallet/AddExchange/test.ts
index c9c119fd3..60d5b274c 100644
--- a/packages/taler-wallet-webextension/src/wallet/AddExchange/test.ts
+++ b/packages/taler-wallet-webextension/src/wallet/AddExchange/test.ts
@@ -19,18 +19,18 @@
* @author Sebastian Javier Marchano (sebasjm)
*/
-import { expect } from "chai";
-import { createWalletApiMock } from "../../test-utils.js";
-import * as tests from "@gnu-taler/web-util/testing";
-import { Props } from "./index.js";
-import { useComponentState } from "./state.js";
-import { nullFunction } from "../../mui/handlers.js";
-import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
import {
ExchangeEntryStatus,
ExchangeTosStatus,
ExchangeUpdateStatus,
} from "@gnu-taler/taler-util";
+import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
+import * as tests from "@gnu-taler/web-util/testing";
+import { expect } from "chai";
+import { nullFunction } from "../../mui/handlers.js";
+import { createWalletApiMock } from "../../test-utils.js";
+import { Props } from "./index.js";
+import { useComponentState } from "./state.js";
const props: Props = {
onBack: nullFunction,
noDebounce: true,
@@ -54,6 +54,7 @@ describe("AddExchange states", () => {
tosStatus: ExchangeTosStatus.Pending,
exchangeUpdateStatus: ExchangeUpdateStatus.UnavailableUpdate,
paytoUris: [],
+ lastUpdateTimestamp: undefined,
},
],
},
diff --git a/packages/taler-wallet-webextension/src/wallet/DestinationSelection/test.ts b/packages/taler-wallet-webextension/src/wallet/DestinationSelection/test.ts
index d42a3477d..3082ae7a4 100644
--- a/packages/taler-wallet-webextension/src/wallet/DestinationSelection/test.ts
+++ b/packages/taler-wallet-webextension/src/wallet/DestinationSelection/test.ts
@@ -27,8 +27,8 @@ import {
ExchangeUpdateStatus,
} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { expect } from "chai";
import * as tests from "@gnu-taler/web-util/testing";
+import { expect } from "chai";
import { nullFunction } from "../../mui/handlers.js";
import { createWalletApiMock } from "../../test-utils.js";
import { useComponentState } from "./state.js";
@@ -42,6 +42,7 @@ const exchangeArs: ExchangeListItem = {
exchangeUpdateStatus: ExchangeUpdateStatus.Initial,
paytoUris: [],
ageRestrictionOptions: [],
+ lastUpdateTimestamp: undefined,
};
describe("Destination selection states", () => {
diff --git a/packages/taler-wallet-webextension/src/wallet/Settings.tsx b/packages/taler-wallet-webextension/src/wallet/Settings.tsx
index 19b30dd5f..38e576496 100644
--- a/packages/taler-wallet-webextension/src/wallet/Settings.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/Settings.tsx
@@ -15,6 +15,7 @@
*/
import {
+ AbsoluteTime,
ExchangeListItem,
ExchangeTosStatus,
LibtoolVersion,
@@ -153,16 +154,22 @@ export function SettingsView({
<i18n.Translate>URL</i18n.Translate>
</th>
<th>
+ <i18n.Translate>Status</i18n.Translate>
+ </th>
+ <th>
<i18n.Translate>Terms of Service</i18n.Translate>
</th>
<th>
+ <i18n.Translate>Last Update</i18n.Translate>
+ </th>
+ <th>
<i18n.Translate>Actions</i18n.Translate>
</th>
</tr>
</thead>
<tbody>
{knownExchanges.map((e, idx) => {
- function Status(): VNode {
+ function TosStatus(): VNode {
switch (e.tosStatus) {
case ExchangeTosStatus.Accepted:
return (
@@ -195,7 +202,19 @@ export function SettingsView({
<a href={e.exchangeBaseUrl}>{e.exchangeBaseUrl}</a>
</td>
<td>
- <Status />
+ {e.exchangeEntryStatus} / {e.exchangeUpdateStatus}
+ </td>
+ <td>
+ <TosStatus />
+ </td>
+ <td>
+ {e.lastUpdateTimestamp
+ ? AbsoluteTime.toIsoString(
+ AbsoluteTime.fromPreciseTimestamp(
+ e.lastUpdateTimestamp,
+ ),
+ )
+ : "never"}
</td>
<td>
<button