diff options
| author | Sebastian <sebasjm@gmail.com> | 2022-10-14 16:12:24 -0300 |
|---|---|---|
| committer | Sebastian <sebasjm@gmail.com> | 2022-10-14 16:12:49 -0300 |
| commit | b011c8a32ed478807737b96a9d7fc4e0ff085bdb (patch) | |
| tree | f9961a73888b83743431acf134da7f3da22fa4e9 /packages/taler-wallet-webextension/src/wallet/ExchangeSelection/state.ts | |
| parent | 6acddd6d70abc568e4b3740f56662691278aa645 (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.ts | 47 |
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, }; |
