taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 2ecc82979732caa11ef23919950f02cfb620820c
parent ae5403856c1316c91b9581ebd8cbca66cbfa2159
Author: Sebastian <sebasjm@taler-systems.com>
Date:   Mon, 13 Jul 2026 12:23:49 -0300

fix #11626

Diffstat:
Mpackages/taler-util/src/taleruri.ts | 8+++++++-
Mpackages/taler-wallet-webextension/src/cta/DevExperiment/state.ts | 33+++++++--------------------------
Mpackages/taler-wallet-webextension/src/wallet/DeveloperPage.tsx | 25-------------------------
3 files changed, 14 insertions(+), 52 deletions(-)

diff --git a/packages/taler-util/src/taleruri.ts b/packages/taler-util/src/taleruri.ts @@ -180,6 +180,7 @@ export namespace TalerUris { function getTalerParamList(p: URI): [string, string][] { const result: [string, string][] = []; + switch (p.type) { case TalerUriAction.Withdraw: { if (p.externalConfirmation) { @@ -236,11 +237,16 @@ export namespace TalerUris { } return result; } + case TalerUriAction.DevExperiment: { + Object.entries(p.query ?? {}).forEach(([key,value])=> { + result.push([key,value]) + }) + return result; + } case TalerUriAction.Refund: case TalerUriAction.PayPush: case TalerUriAction.PayPull: case TalerUriAction.Restore: - case TalerUriAction.DevExperiment: case TalerUriAction.AddExchange: { return result; } diff --git a/packages/taler-wallet-webextension/src/cta/DevExperiment/state.ts b/packages/taler-wallet-webextension/src/cta/DevExperiment/state.ts @@ -20,6 +20,7 @@ import { useTranslationContext } from "@gnu-taler/web-util/browser"; import { useAlertContext } from "../../context/alert.js"; import { useBackendContext } from "../../context/backend.js"; import { Props, State } from "./index.js"; +import { useEffect } from "preact/hooks"; export function useComponentState({ talerExperimentUri, @@ -35,10 +36,6 @@ export function useComponentState({ await api.wallet.call(WalletApiOperation.ApplyDevExperiment, { devExperimentUri: talerExperimentUri, }); - // const resp = await api.wallet.call(WalletApiOperation.CreateDepositGroup, { - // amount: Amounts.stringify(amount), - // depositPaytoUri: uri, - // }); onSuccess(); } const uri = @@ -51,6 +48,11 @@ export function useComponentState({ ), ); + useEffect(() => { + if (uri !== undefined) { + doApply(); + } + }, [uri]); if (!uri) { return { status: "error", @@ -63,29 +65,8 @@ export function useComponentState({ }, }; } - if (uri.devExperimentId === "insert-denom-loss") { - return { - status: "insertLost", - error: undefined, - confirm: { - onClick: pushAlertOnError(doApply), - }, - cancel: onCancel, - }; - } - if (uri.devExperimentId === "insert-pending-refresh") { - return { - status: "pendingRefresh", - error: undefined, - confirm: { - onClick: pushAlertOnError(doApply), - }, - cancel: onCancel, - }; - } return { - status: "unknown", + status: "loading", error: undefined, - experimentId: uri.devExperimentId, }; } diff --git a/packages/taler-wallet-webextension/src/wallet/DeveloperPage.tsx b/packages/taler-wallet-webextension/src/wallet/DeveloperPage.tsx @@ -536,31 +536,6 @@ export function DeveloperPage(): VNode { </Button> </Paper> - <Paper style={{ padding: 10, margin: 10 }}> - <h3>Dev Experiment</h3> - <div> - <TextField - label="Experiment name" - placeholder="taler://dev-experiment" - variant="filled" - // error={subject.error} - required - value={experiment} - onChange={setExperiment} - /> - </div> - <Button - variant="contained" - onClick={async () => { - await api.wallet.call(WalletApiOperation.ApplyDevExperiment, { - devExperimentUri: `taler://dev-experiment/${experiment}`, - }); - }} - > - Apply - </Button> - </Paper> - <br /> <p> <i18n.Translate>Coins</i18n.Translate>: