aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/platform
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2022-09-09 12:22:26 -0300
committerSebastian <sebasjm@gmail.com>2022-09-09 12:22:57 -0300
commitdda90b51f6fc6fca48a68bc53088e1ed3f018a21 (patch)
tree4b94b9496f19f25321923cafe241663b363258c2 /packages/taler-wallet-webextension/src/platform
parent9b2d6d766f0192923d337ab8c69a332ebdc20bf1 (diff)
downloadwallet-core-dda90b51f6fc6fca48a68bc53088e1ed3f018a21.tar.xz
find taler action in clipboard and withdraw with mobile
Diffstat (limited to 'packages/taler-wallet-webextension/src/platform')
-rw-r--r--packages/taler-wallet-webextension/src/platform/api.ts17
-rw-r--r--packages/taler-wallet-webextension/src/platform/chrome.ts6
-rw-r--r--packages/taler-wallet-webextension/src/platform/dev.ts1
3 files changed, 20 insertions, 4 deletions
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<string | undefined>;
/**
- * 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<string | undefined>;
+
+ /**
+ * 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<string | undefined> {
}
}
+async function findTalerUriInClipboard(): Promise<string | undefined> {
+ const textInClipboard = await window.navigator.clipboard.readText();
+ return textInClipboard.startsWith("taler://") || textInClipboard.startsWith("taler+http://") ? textInClipboard : undefined
+}
+
async function findTalerUriInActiveTab(): Promise<string | undefined> {
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;
},