From dc002f99a96752d3f0a10efe44a8a4d0503e8529 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 22 Dec 2022 18:42:18 -0300 Subject: support for ext+taler:// while taler:// is not yet allowed as scheme --- .../src/cta/Withdraw/state.ts | 7 ++- .../src/platform/chrome.ts | 5 +- .../src/wallet/DeveloperPage.tsx | 60 +++++++++++++++++++++- .../taler-wallet-webextension/src/wxBackend.ts | 5 +- 4 files changed, 72 insertions(+), 5 deletions(-) (limited to 'packages/taler-wallet-webextension/src') diff --git a/packages/taler-wallet-webextension/src/cta/Withdraw/state.ts b/packages/taler-wallet-webextension/src/cta/Withdraw/state.ts index 1ecf05eca..d1853442b 100644 --- a/packages/taler-wallet-webextension/src/cta/Withdraw/state.ts +++ b/packages/taler-wallet-webextension/src/cta/Withdraw/state.ts @@ -90,7 +90,7 @@ export function useComponentStateFromParams({ } export function useComponentStateFromURI({ - talerWithdrawUri, + talerWithdrawUri: maybeTalerUri, cancel, onSuccess, }: PropsFromURI): RecursiveState { @@ -99,7 +99,10 @@ export function useComponentStateFromURI({ * Ask the wallet about the withdraw URI */ const uriInfoHook = useAsyncAsHook(async () => { - if (!talerWithdrawUri) throw Error("ERROR_NO-URI-FOR-WITHDRAWAL"); + if (!maybeTalerUri) throw Error("ERROR_NO-URI-FOR-WITHDRAWAL"); + const talerWithdrawUri = maybeTalerUri.startsWith("ext+") + ? maybeTalerUri.substring(4) + : maybeTalerUri; const uriInfo = await api.wallet.call( WalletApiOperation.GetWithdrawalDetailsForUri, diff --git a/packages/taler-wallet-webextension/src/platform/chrome.ts b/packages/taler-wallet-webextension/src/platform/chrome.ts index b7b0c6640..744283913 100644 --- a/packages/taler-wallet-webextension/src/platform/chrome.ts +++ b/packages/taler-wallet-webextension/src/platform/chrome.ts @@ -233,7 +233,10 @@ function notifyWhenAppIsReady(callback: () => void): void { } } -function openWalletURIFromPopup(talerUri: string): void { +function openWalletURIFromPopup(maybeTalerUri: string): void { + const talerUri = maybeTalerUri.startsWith("ext+") + ? maybeTalerUri.substring(4) + : maybeTalerUri; const uriType = classifyTalerUri(talerUri); let url: string | undefined = undefined; diff --git a/packages/taler-wallet-webextension/src/wallet/DeveloperPage.tsx b/packages/taler-wallet-webextension/src/wallet/DeveloperPage.tsx index 0916f4f43..4805c03ca 100644 --- a/packages/taler-wallet-webextension/src/wallet/DeveloperPage.tsx +++ b/packages/taler-wallet-webextension/src/wallet/DeveloperPage.tsx @@ -170,7 +170,7 @@ export function View({

Debug tools:

- + + + + + + + {" "} + + + + + + {" "} {downloadedDatabase && (
diff --git a/packages/taler-wallet-webextension/src/wxBackend.ts b/packages/taler-wallet-webextension/src/wxBackend.ts index dca239de6..0f0beb41f 100644 --- a/packages/taler-wallet-webextension/src/wxBackend.ts +++ b/packages/taler-wallet-webextension/src/wxBackend.ts @@ -298,7 +298,10 @@ async function reinitWallet(): Promise { return walletInit.resolve(); } -function parseTalerUriAndRedirect(tabId: number, talerUri: string): void { +function parseTalerUriAndRedirect(tabId: number, maybeTalerUri: string): void { + const talerUri = maybeTalerUri.startsWith("ext+") + ? maybeTalerUri.substring(4) + : maybeTalerUri; const uriType = classifyTalerUri(talerUri); switch (uriType) { case TalerUriType.TalerWithdraw: -- cgit v1.2.3