/*
This file is part of GNU Taler
(C) 2019 Taler Systems SA
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
*/
import { PaytoUri, stringifyPaytoUri } from "@gnu-taler/taler-util";
import { styled } from "@linaria/react";
import { Fragment, h, VNode } from "preact";
import { useState } from "preact/hooks";
import {
ExtraLargeText,
LargeText,
SmallBoldText,
SmallLightText,
} from "./styled/index.js";
export type Kind = "positive" | "negative" | "neutral";
interface Props {
title: VNode | string;
text: VNode | string;
kind?: Kind;
big?: boolean;
showSign?: boolean;
}
export function Part({
text,
title,
kind = "neutral",
big,
showSign,
}: Props): VNode {
const Text = big ? ExtraLargeText : LargeText;
return (
}
);
}
interface PropsPayto {
payto: PaytoUri;
kind: Kind;
big?: boolean;
}
export function PartPayto({ payto, kind, big }: PropsPayto): VNode {
const Text = big ? ExtraLargeText : LargeText;
let text: string | undefined = undefined;
let title = "";
if (payto.isKnown) {
if (payto.targetType === "x-taler-bank") {
text = payto.account;
title = "Bank account";
} else if (payto.targetType === "bitcoin") {
text = payto.targetPath;
title = "Bitcoin addr";
} else if (payto.targetType === "iban") {
text = payto.targetPath;
title = "IBAN";
}
}
if (!text) {
text = stringifyPaytoUri(payto);
title = "Payto URI";
}
return (