aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/state.ts
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2022-10-14 16:12:24 -0300
committerSebastian <sebasjm@gmail.com>2022-10-14 16:12:49 -0300
commitb011c8a32ed478807737b96a9d7fc4e0ff085bdb (patch)
treef9961a73888b83743431acf134da7f3da22fa4e9 /packages/taler-wallet-webextension/src/wallet/ExchangeSelection/state.ts
parent6acddd6d70abc568e4b3740f56662691278aa645 (diff)
terms and privacy on exchange selection
Diffstat (limited to 'packages/taler-wallet-webextension/src/wallet/ExchangeSelection/state.ts')
-rw-r--r--packages/taler-wallet-webextension/src/wallet/ExchangeSelection/state.ts47
1 files changed, 47 insertions, 0 deletions
diff --git a/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/state.ts b/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/state.ts
index e1b270a42..2450a90ca 100644
--- a/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/state.ts
+++ b/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/state.ts
@@ -50,9 +50,15 @@ export function useComponentState(
const original = !initialExchange
? undefined
: await api.getExchangeDetailedInfo(initialExchange.exchangeBaseUrl);
+
return { exchanges, selected, original };
}, [value]);
+ const [showingTos, setShowingTos] = useState<string | undefined>(undefined);
+ const [showingPrivacy, setShowingPrivacy] = useState<string | undefined>(
+ undefined,
+ );
+
if (!hook) {
return {
status: "loading",
@@ -82,6 +88,27 @@ export function useComponentState(
{} as Record<string, string>,
);
+ if (showingPrivacy) {
+ return {
+ status: "showing-privacy",
+ error: undefined,
+ onClose: {
+ onClick: async () => setShowingPrivacy(undefined),
+ },
+ exchangeUrl: showingPrivacy,
+ };
+ }
+ if (showingTos) {
+ return {
+ status: "showing-tos",
+ error: undefined,
+ onClose: {
+ onClick: async () => setShowingTos(undefined),
+ },
+ exchangeUrl: showingTos,
+ };
+ }
+
if (!original) {
// !original <=> selected == original
return {
@@ -98,6 +125,16 @@ export function useComponentState(
onClick: onCancel,
},
selected,
+ onShowPrivacy: {
+ onClick: async () => {
+ setShowingPrivacy(selected.exchangeBaseUrl);
+ },
+ },
+ onShowTerms: {
+ onClick: async () => {
+ setShowingTos(selected.exchangeBaseUrl);
+ },
+ },
};
}
@@ -140,6 +177,16 @@ export function useComponentState(
onSelection(selected.exchangeBaseUrl);
},
},
+ onShowPrivacy: {
+ onClick: async () => {
+ setShowingPrivacy(selected.exchangeBaseUrl);
+ },
+ },
+ onShowTerms: {
+ onClick: async () => {
+ setShowingTos(selected.exchangeBaseUrl);
+ },
+ },
selected,
pairTimeline,
};