diff --git a/packages/taler-wallet-webextension/src/pages/popup.stories.tsx b/packages/taler-wallet-webextension/src/pages/popup.stories.tsx
index e9202fbea..5e1d0c3a2 100644
--- a/packages/taler-wallet-webextension/src/pages/popup.stories.tsx
+++ b/packages/taler-wallet-webextension/src/pages/popup.stories.tsx
@@ -72,7 +72,7 @@ const exampleData = {
summary: 'the summary',
fulfillmentMessage: '',
},
- proposalId: '#proposalId',
+ proposalId: '1EMJJH8EP1NX3XF7733NCYS2DBEJW4Q2KA5KEB37MCQJQ8Q5HMC0',
status: PaymentStatus.Accepted,
} as TransactionPayment,
deposit: {
@@ -94,7 +94,7 @@ const exampleData = {
refund: {
...commonTransaction,
type: TransactionType.Refund,
- refundedTransactionId: '#refundId',
+ refundedTransactionId: 'payment:1EMJJH8EP1NX3XF7733NCYS2DBEJW4Q2KA5KEB37MCQJQ8Q5HMC0',
info: {
contractTermsHash: 'ASDZXCASD',
merchant: {
diff --git a/packages/taler-wallet-webextension/src/pages/popup.tsx b/packages/taler-wallet-webextension/src/pages/popup.tsx
index 4693c94c3..ea496ac0a 100644
--- a/packages/taler-wallet-webextension/src/pages/popup.tsx
+++ b/packages/taler-wallet-webextension/src/pages/popup.tsx
@@ -46,7 +46,7 @@ import { useEffect, useState } from "preact/hooks";
import * as i18n from "../i18n";
import { PageLink, renderAmount } from "../renderHtml";
import * as wxApi from "../wxApi";
-import { PermissionsCheckbox } from "./welcome";
+import { PermissionsCheckbox, useExtendedPermissions, Diagnostics } from "./welcome";
interface TabProps {
target: string;
@@ -452,7 +452,7 @@ export function WalletTransactionView({ transaction, onDelete, onBack }: WalletT
function Pending() {
if (!transaction?.pending) return null
- return (pending...)
+ return (pending...)
}
function CommonFields() {
@@ -503,7 +503,7 @@ export function WalletTransactionView({ transaction, onDelete, onBack }: WalletT
return (
- Payment ({transaction.proposalId})
+ Payment ({transaction.proposalId.substring(0, 10)}...)
To {transaction.info.merchant.name}
@@ -519,7 +519,7 @@ export function WalletTransactionView({ transaction, onDelete, onBack }: WalletT
{transaction.info.products && transaction.info.products.length > 0 &&
Products |
-
+
{transaction.info.products.map(p =>
- {p.description}
)} |
@@ -584,11 +584,12 @@ export function WalletTransactionView({ transaction, onDelete, onBack }: WalletT
);
}
+ const TRANSACTION_FROM_REFUND = /[a-z]*:([\w]{10}).*/
if (transaction.type === TransactionType.Refund) {
return (
- Refund ({transaction.refundedTransactionId})
+ Refund ({TRANSACTION_FROM_REFUND.exec(transaction.refundedTransactionId)![1]}...)
From {transaction.info.merchant.name}
@@ -633,6 +634,8 @@ function WalletTransaction({ tid }: { tid: string }): JSX.Element {
const ts = res.transactions.filter(t => t.transactionId === tid)
if (ts.length === 1) {
setTransaction(ts[0]);
+ } else {
+ route(Pages.history)
}
};
fetchData();
@@ -640,20 +643,55 @@ function WalletTransaction({ tid }: { tid: string }): JSX.Element {
return wxApi.deleteTransaction(tid)}
+ onDelete={() => wxApi.deleteTransaction(tid).then(_ => history.go(-1))}
onBack={() => { history.go(-1) }}
/>
}
-class WalletSettings extends Component {
- render(): JSX.Element {
- return (
-
- );
- }
+function WalletSettings() {
+ const [permissionsEnabled, togglePermissions] = useExtendedPermissions()
+ return (
+
+ Permissions
+
+ {/*
+ Developer mode
+
+ */}
+
+ );
+}
+
+
+export function DebugCheckbox({ enabled, onToggle }: { enabled: boolean, onToggle: () => void }): JSX.Element {
+ return (
+
+
+
+
+ (Enabling this option below will make using the wallet faster, but
+ requires more permissions from your browser.)
+
+
+ );
}
function reload(): void {
@@ -685,6 +723,7 @@ function WalletDebug(props: any): JSX.Element {
+
);
}
diff --git a/packages/taler-wallet-webextension/src/pages/welcome.tsx b/packages/taler-wallet-webextension/src/pages/welcome.tsx
index cdc4913e4..808143189 100644
--- a/packages/taler-wallet-webextension/src/pages/welcome.tsx
+++ b/packages/taler-wallet-webextension/src/pages/welcome.tsx
@@ -29,7 +29,7 @@ import { extendedPermissions } from "../permissions";
import { WalletDiagnostics } from "@gnu-taler/taler-util";
import { Fragment, JSX } from "preact/jsx-runtime";
-function Diagnostics(): JSX.Element | null {
+export function Diagnostics(): JSX.Element | null {
const [timedOut, setTimedOut] = useState(false);
const [diagnostics, setDiagnostics] = useState(
undefined,
@@ -128,29 +128,32 @@ async function handleExtendedPerm(isEnabled: boolean): Promise {
return nextVal ?? false
}
-export function PermissionsCheckbox(): JSX.Element {
- const [extendedPermissionsEnabled, setExtendedPermissionsEnabled] = useState(false);
+export function useExtendedPermissions(): [boolean, () => void] {
+ const [enabled, setEnabled] = useState(false);
- const togglePermission = () => {
- setExtendedPermissionsEnabled(v => !v)
- handleExtendedPerm(extendedPermissionsEnabled).then( result => {
- setExtendedPermissionsEnabled(result)
+ const toggle = () => {
+ setEnabled(v => !v)
+ handleExtendedPerm(enabled).then( result => {
+ setEnabled(result)
} )
}
useEffect(() => {
async function getExtendedPermValue(): Promise {
const res = await wxApi.getExtendedPermissions();
- setExtendedPermissionsEnabled(res.newValue);
+ setEnabled(res.newValue);
}
getExtendedPermValue();
},[]);
+ return [enabled, toggle]
+}
+export function PermissionsCheckbox({enabled, onToggle}: {enabled:boolean, onToggle: () => void}): JSX.Element {
return (
Thank you for installing the wallet.
Permissions
-
+
Next Steps
Try the demo ยป
|