From dda90b51f6fc6fca48a68bc53088e1ed3f018a21 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 9 Sep 2022 12:22:26 -0300 Subject: find taler action in clipboard and withdraw with mobile --- packages/taler-wallet-webextension/src/platform/api.ts | 17 +++++++++++++---- .../taler-wallet-webextension/src/platform/chrome.ts | 6 ++++++ packages/taler-wallet-webextension/src/platform/dev.ts | 1 + 3 files changed, 20 insertions(+), 4 deletions(-) (limited to 'packages/taler-wallet-webextension/src/platform') diff --git a/packages/taler-wallet-webextension/src/platform/api.ts b/packages/taler-wallet-webextension/src/platform/api.ts index 37f52192f..23fd80ed7 100644 --- a/packages/taler-wallet-webextension/src/platform/api.ts +++ b/packages/taler-wallet-webextension/src/platform/api.ts @@ -163,13 +163,22 @@ export interface PlatformAPI { findTalerUriInActiveTab(): Promise; /** - * Used from the frontend to send commands to the wallet + * Popup API * - * @param operation - * @param payload + * Read the current tab html and try to find any Taler URI or QR code present. * - * @return response from the backend + * @return Taler URI if found */ + findTalerUriInClipboard(): Promise; + + /** + * Used from the frontend to send commands to the wallet + * + * @param operation + * @param payload + * + * @return response from the backend + */ sendMessageToWalletBackground( operation: string, payload: any, diff --git a/packages/taler-wallet-webextension/src/platform/chrome.ts b/packages/taler-wallet-webextension/src/platform/chrome.ts index 4ce995bd7..7311354c9 100644 --- a/packages/taler-wallet-webextension/src/platform/chrome.ts +++ b/packages/taler-wallet-webextension/src/platform/chrome.ts @@ -30,6 +30,7 @@ import { const api: PlatformAPI = { isFirefox, findTalerUriInActiveTab, + findTalerUriInClipboard, getPermissionsApi, getWalletWebExVersion, listenToWalletBackground, @@ -689,6 +690,11 @@ async function findTalerUriInTab(tabId: number): Promise { } } +async function findTalerUriInClipboard(): Promise { + const textInClipboard = await window.navigator.clipboard.readText(); + return textInClipboard.startsWith("taler://") || textInClipboard.startsWith("taler+http://") ? textInClipboard : undefined +} + async function findTalerUriInActiveTab(): Promise { const tab = await getCurrentTab(); if (!tab || tab.id === undefined) return; diff --git a/packages/taler-wallet-webextension/src/platform/dev.ts b/packages/taler-wallet-webextension/src/platform/dev.ts index e5db0c8ec..bb7e181c4 100644 --- a/packages/taler-wallet-webextension/src/platform/dev.ts +++ b/packages/taler-wallet-webextension/src/platform/dev.ts @@ -23,6 +23,7 @@ const api: PlatformAPI = { isFirefox: () => false, keepAlive: (cb: VoidFunction) => cb(), findTalerUriInActiveTab: async () => undefined, + findTalerUriInClipboard: async () => undefined, containsTalerHeaderListener: () => { return true; }, -- cgit v1.2.3