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 --- .../src/hooks/useTalerActionURL.ts | 29 ++++++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) (limited to 'packages/taler-wallet-webextension/src/hooks/useTalerActionURL.ts') diff --git a/packages/taler-wallet-webextension/src/hooks/useTalerActionURL.ts b/packages/taler-wallet-webextension/src/hooks/useTalerActionURL.ts index 449cb698f..74d7cbbd9 100644 --- a/packages/taler-wallet-webextension/src/hooks/useTalerActionURL.ts +++ b/packages/taler-wallet-webextension/src/hooks/useTalerActionURL.ts @@ -17,20 +17,39 @@ import { useEffect, useState } from "preact/hooks"; import { useIocContext } from "../context/iocContext.js"; +export interface UriLocation { + uri: string; + location: "clipboard" | "activeTab" +} + export function useTalerActionURL(): [ - string | undefined, + UriLocation | undefined, (s: boolean) => void, ] { - const [talerActionUrl, setTalerActionUrl] = useState( + const [talerActionUrl, setTalerActionUrl] = useState( undefined, ); const [dismissed, setDismissed] = useState(false); - const { findTalerUriInActiveTab } = useIocContext(); + const { findTalerUriInActiveTab, findTalerUriInClipboard } = useIocContext(); useEffect(() => { async function check(): Promise { - const talerUri = await findTalerUriInActiveTab(); - setTalerActionUrl(talerUri); + const clipUri = await findTalerUriInClipboard(); + if (clipUri) { + setTalerActionUrl({ + location: "clipboard", + uri: clipUri + }); + return; + } + const tabUri = await findTalerUriInActiveTab(); + if (tabUri) { + setTalerActionUrl({ + location: "activeTab", + uri: tabUri + }); + return; + } } check(); }); -- cgit v1.2.3