aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/popup
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2022-03-23 10:50:12 -0300
committerSebastian <sebasjm@gmail.com>2022-03-23 10:58:57 -0300
commit32f6409ac312f31821f791c3a376168289f0e4f4 (patch)
treec77c660bb85cf359faf74b5cddbe95eb0a915c5e /packages/taler-wallet-webextension/src/popup
parentc539d1803c1376cba0831be64866b6d2c1652403 (diff)
downloadwallet-core-32f6409ac312f31821f791c3a376168289f0e4f4.tar.xz
all the browser related code move into one place, making it easy for specific platform code or mocking for testing
Diffstat (limited to 'packages/taler-wallet-webextension/src/popup')
-rw-r--r--packages/taler-wallet-webextension/src/popup/DeveloperPage.tsx20
-rw-r--r--packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx53
2 files changed, 9 insertions, 64 deletions
diff --git a/packages/taler-wallet-webextension/src/popup/DeveloperPage.tsx b/packages/taler-wallet-webextension/src/popup/DeveloperPage.tsx
index 3deea032d..d47b8ce7b 100644
--- a/packages/taler-wallet-webextension/src/popup/DeveloperPage.tsx
+++ b/packages/taler-wallet-webextension/src/popup/DeveloperPage.tsx
@@ -375,16 +375,6 @@ function toBase64(str: string): string {
);
}
-export function reload(): void {
- try {
- // eslint-disable-next-line no-undef
- chrome.runtime.reload();
- window.close();
- } catch (e) {
- // Functionality missing in firefox, ignore!
- }
-}
-
function runIntegrationTest() {}
export async function confirmReset(
@@ -395,13 +385,3 @@ export async function confirmReset(
window.close();
}
}
-
-export function openExtensionPage(page: string) {
- return () => {
- // eslint-disable-next-line no-undef
- chrome.tabs.create({
- // eslint-disable-next-line no-undef
- url: chrome.runtime.getURL(page),
- });
- };
-}
diff --git a/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx b/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx
index 9ac83a578..a1082ad92 100644
--- a/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx
+++ b/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx
@@ -21,36 +21,21 @@
import { classifyTalerUri, TalerUriType } from "@gnu-taler/taler-util";
import { Fragment, h } from "preact";
+import { platform } from "../platform/api";
import { ButtonPrimary, ButtonSuccess } from "../components/styled";
import { useTranslationContext } from "../context/translation";
-import { actionForTalerUri } from "../utils/index";
export interface Props {
url: string;
onDismiss: () => void;
}
-async function getCurrentTab(): Promise<chrome.tabs.Tab> {
- let queryOptions = { active: true, currentWindow: true };
- const tab = await new Promise<chrome.tabs.Tab>((res, rej) => {
- chrome.tabs.query(queryOptions, (tabs) => {
- res(tabs[0]);
- });
- });
- return tab;
-}
-
-async function navigateTo(url?: string) {
- if (!url) return;
- const tab = await getCurrentTab();
- if (!tab.id) return;
- await chrome.tabs.update(tab.id, { url });
- window.close();
-}
-
export function TalerActionFound({ url, onDismiss }: Props) {
const uriType = classifyTalerUri(url);
const { i18n } = useTranslationContext();
+ function redirectToWallet() {
+ platform.openWalletURIFromPopup(uriType, url);
+ }
return (
<Fragment>
<section>
@@ -62,11 +47,7 @@ export function TalerActionFound({ url, onDismiss }: Props) {
<p>
<i18n.Translate>This page has pay action.</i18n.Translate>
</p>
- <ButtonSuccess
- onClick={() => {
- navigateTo(actionForTalerUri(uriType, url));
- }}
- >
+ <ButtonSuccess onClick={redirectToWallet}>
<i18n.Translate>Open pay page</i18n.Translate>
</ButtonSuccess>
</div>
@@ -78,11 +59,7 @@ export function TalerActionFound({ url, onDismiss }: Props) {
This page has a withdrawal action.
</i18n.Translate>
</p>
- <ButtonSuccess
- onClick={() => {
- navigateTo(actionForTalerUri(uriType, url));
- }}
- >
+ <ButtonSuccess onClick={redirectToWallet}>
<i18n.Translate>Open withdraw page</i18n.Translate>
</ButtonSuccess>
</div>
@@ -92,11 +69,7 @@ export function TalerActionFound({ url, onDismiss }: Props) {
<p>
<i18n.Translate>This page has a tip action.</i18n.Translate>
</p>
- <ButtonSuccess
- onClick={() => {
- navigateTo(actionForTalerUri(uriType, url));
- }}
- >
+ <ButtonSuccess onClick={redirectToWallet}>
<i18n.Translate>Open tip page</i18n.Translate>
</ButtonSuccess>
</div>
@@ -108,11 +81,7 @@ export function TalerActionFound({ url, onDismiss }: Props) {
This page has a notify reserve action.
</i18n.Translate>
</p>
- <ButtonSuccess
- onClick={() => {
- navigateTo(actionForTalerUri(uriType, url));
- }}
- >
+ <ButtonSuccess onClick={redirectToWallet}>
<i18n.Translate>Notify</i18n.Translate>
</ButtonSuccess>
</div>
@@ -122,11 +91,7 @@ export function TalerActionFound({ url, onDismiss }: Props) {
<p>
<i18n.Translate>This page has a refund action.</i18n.Translate>
</p>
- <ButtonSuccess
- onClick={() => {
- navigateTo(actionForTalerUri(uriType, url));
- }}
- >
+ <ButtonSuccess onClick={redirectToWallet}>
<i18n.Translate>Open refund page</i18n.Translate>
</ButtonSuccess>
</div>