summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx')
-rw-r--r--packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx161
1 files changed, 112 insertions, 49 deletions
diff --git a/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx b/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx
index ef0ec341c..cbdcbeb15 100644
--- a/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx
+++ b/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx
@@ -1,5 +1,31 @@
+/*
+ This file is part of GNU Taler
+ (C) 2021 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+ */
+
+/**
+ *
+ * @author Sebastian Javier Marchano (sebasjm)
+ */
+
import { classifyTalerUri, TalerUriType } from "@gnu-taler/taler-util";
-import { ButtonPrimary, ButtonSuccess, PopupBox } from "../components/styled/index";
+import {
+ ButtonPrimary,
+ ButtonSuccess,
+ PopupBox,
+} from "../components/styled/index";
+import { h } from "preact";
export interface Props {
url: string;
@@ -8,54 +34,89 @@ export interface Props {
export function TalerActionFound({ url, onDismiss }: Props) {
const uriType = classifyTalerUri(url);
- return <PopupBox>
- <section>
- <h1>Taler Action </h1>
- {uriType === TalerUriType.TalerPay && <div>
- <p>This page has pay action.</p>
- <ButtonSuccess onClick={() => { chrome.tabs.create({ "url": actionForTalerUri(uriType, url) }); }}>
- Open pay page
- </ButtonSuccess>
- </div>}
- {uriType === TalerUriType.TalerWithdraw && <div>
- <p>This page has a withdrawal action.</p>
- <ButtonSuccess onClick={() => { chrome.tabs.create({ "url": actionForTalerUri(uriType, url) }); }}>
- Open withdraw page
- </ButtonSuccess>
- </div>}
- {uriType === TalerUriType.TalerTip && <div>
- <p>This page has a tip action.</p>
- <ButtonSuccess onClick={() => { chrome.tabs.create({ "url": actionForTalerUri(uriType, url) }); }}>
- Open tip page
- </ButtonSuccess>
- </div>}
- {uriType === TalerUriType.TalerNotifyReserve && <div>
- <p>This page has a notify reserve action.</p>
- <ButtonSuccess onClick={() => { chrome.tabs.create({ "url": actionForTalerUri(uriType, url) }); }}>
- Notify
- </ButtonSuccess>
- </div>}
- {uriType === TalerUriType.TalerRefund && <div>
- <p>This page has a refund action.</p>
- <ButtonSuccess onClick={() => { chrome.tabs.create({ "url": actionForTalerUri(uriType, url) }); }}>
- Open refund page
- </ButtonSuccess>
- </div>}
- {uriType === TalerUriType.Unknown && <div>
- <p>This page has a malformed taler uri.</p>
- <p>{url}</p>
- </div>}
-
- </section>
- <footer>
- <div />
- <ButtonPrimary onClick={() => onDismiss()}> Dismiss </ButtonPrimary>
- </footer>
- </PopupBox>;
-
+ return (
+ <PopupBox>
+ <section>
+ <h1>Taler Action </h1>
+ {uriType === TalerUriType.TalerPay && (
+ <div>
+ <p>This page has pay action.</p>
+ <ButtonSuccess
+ onClick={() => {
+ chrome.tabs.create({ url: actionForTalerUri(uriType, url) });
+ }}
+ >
+ Open pay page
+ </ButtonSuccess>
+ </div>
+ )}
+ {uriType === TalerUriType.TalerWithdraw && (
+ <div>
+ <p>This page has a withdrawal action.</p>
+ <ButtonSuccess
+ onClick={() => {
+ chrome.tabs.create({ url: actionForTalerUri(uriType, url) });
+ }}
+ >
+ Open withdraw page
+ </ButtonSuccess>
+ </div>
+ )}
+ {uriType === TalerUriType.TalerTip && (
+ <div>
+ <p>This page has a tip action.</p>
+ <ButtonSuccess
+ onClick={() => {
+ chrome.tabs.create({ url: actionForTalerUri(uriType, url) });
+ }}
+ >
+ Open tip page
+ </ButtonSuccess>
+ </div>
+ )}
+ {uriType === TalerUriType.TalerNotifyReserve && (
+ <div>
+ <p>This page has a notify reserve action.</p>
+ <ButtonSuccess
+ onClick={() => {
+ chrome.tabs.create({ url: actionForTalerUri(uriType, url) });
+ }}
+ >
+ Notify
+ </ButtonSuccess>
+ </div>
+ )}
+ {uriType === TalerUriType.TalerRefund && (
+ <div>
+ <p>This page has a refund action.</p>
+ <ButtonSuccess
+ onClick={() => {
+ chrome.tabs.create({ url: actionForTalerUri(uriType, url) });
+ }}
+ >
+ Open refund page
+ </ButtonSuccess>
+ </div>
+ )}
+ {uriType === TalerUriType.Unknown && (
+ <div>
+ <p>This page has a malformed taler uri.</p>
+ <p>{url}</p>
+ </div>
+ )}
+ </section>
+ <footer>
+ <div />
+ <ButtonPrimary onClick={() => onDismiss()}> Dismiss </ButtonPrimary>
+ </footer>
+ </PopupBox>
+ );
}
-function actionForTalerUri(uriType: TalerUriType, talerUri: string): string | undefined {
+function actionForTalerUri(
+ uriType: TalerUriType,
+ talerUri: string,
+): string | undefined {
switch (uriType) {
case TalerUriType.TalerWithdraw:
return makeExtensionUrlWithParams("static/wallet.html#/withdraw", {
@@ -91,8 +152,10 @@ function makeExtensionUrlWithParams(
): string {
const innerUrl = new URL(chrome.extension.getURL("/" + url));
if (params) {
- const hParams = Object.keys(params).map(k => `${k}=${params[k]}`).join('&')
- innerUrl.hash = innerUrl.hash + '?' + hParams
+ const hParams = Object.keys(params)
+ .map((k) => `${k}=${params[k]}`)
+ .join("&");
+ innerUrl.hash = innerUrl.hash + "?" + hParams;
}
return innerUrl.href;
}