From 829a59e1a24d6a99ce7554d28acfd05f21baeaf8 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Mon, 22 Nov 2021 17:34:27 -0300 Subject: add exchange feature --- .../src/cta/TermsOfServiceSection.tsx | 129 +++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 packages/taler-wallet-webextension/src/cta/TermsOfServiceSection.tsx (limited to 'packages/taler-wallet-webextension/src/cta/TermsOfServiceSection.tsx') diff --git a/packages/taler-wallet-webextension/src/cta/TermsOfServiceSection.tsx b/packages/taler-wallet-webextension/src/cta/TermsOfServiceSection.tsx new file mode 100644 index 000000000..5eddde64f --- /dev/null +++ b/packages/taler-wallet-webextension/src/cta/TermsOfServiceSection.tsx @@ -0,0 +1,129 @@ +import { i18n } from "@gnu-taler/taler-util"; +import { Fragment, h, VNode } from "preact"; +import { CheckboxOutlined } from "../components/CheckboxOutlined"; +import { ExchangeXmlTos } from "../components/ExchangeToS"; +import { + ButtonSuccess, + ButtonWarning, + LinkSuccess, + TermsOfService, + WarningBox, +} from "../components/styled"; +import { TermsState } from "../utils"; + +interface Props { + reviewing: boolean; + reviewed: boolean; + terms: TermsState; + onReview?: (b: boolean) => void; + onAccept: (b: boolean) => void; +} +export function TermsOfServiceSection({ + reviewed, + reviewing, + terms, + onAccept, + onReview, +}: Props): VNode { + if (!reviewing) { + if (!reviewed) { + if (!onReview) { + return
Terms of service status: {terms.status}
; + } + return ( + + {terms.status === "new" && ( +
+ onReview(true)}> + {i18n.str`Review exchange terms of service`} + +
+ )} + {terms.status === "changed" && ( +
+ onReview(true)}> + {i18n.str`Review new version of terms of service`} + +
+ )} +
+ ); + } + return ( + + {onReview && ( +
+ onReview(true)}> + {i18n.str`Show terms of service`} + +
+ )} +
+ { + console.log("asdasd", reviewed); + onAccept(!reviewed); + if (onReview) onReview(false); + }} + /> +
+
+ ); + } + return ( + + {terms.status !== "notfound" && !terms.content && ( +
+ + The exchange reply with a empty terms of service + +
+ )} + {terms.status !== "accepted" && terms.content && ( +
+ {terms.content.type === "xml" && ( + + + + )} + {terms.content.type === "plain" && ( +
+
{terms.content.content}
+
+ )} + {terms.content.type === "html" && ( +