/*
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
*/
/**
*
* @author Sebastian Javier Marchano (sebasjm)
*/
import { classifyTalerUri, TalerUriType, i18n } from "@gnu-taler/taler-util";
import { Fragment, h } from "preact";
import { ButtonPrimary, ButtonSuccess } from "../components/styled";
import { actionForTalerUri } from "../utils/index";
export interface Props {
url: string;
onDismiss: () => void;
}
async function getCurrentTab(): Promise {
let queryOptions = { active: true, currentWindow: true };
const tab = await new Promise((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);
return (
Taler Action
{uriType === TalerUriType.TalerPay && (
This page has pay action.
{
navigateTo(actionForTalerUri(uriType, url));
}}
>
Open pay page
)}
{uriType === TalerUriType.TalerWithdraw && (
This page has a withdrawal action.
{
navigateTo(actionForTalerUri(uriType, url));
}}
>
Open withdraw page
)}
{uriType === TalerUriType.TalerTip && (
This page has a tip action.
{
navigateTo(actionForTalerUri(uriType, url));
}}
>
Open tip page