From 8eee38d55936c194637ecead302dde69ec0b9897 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 5 Apr 2023 12:06:24 -0300 Subject: fix #7791 --- .../src/wallet/ExchangeSelection/state.ts | 40 +++++++++------------- 1 file changed, 16 insertions(+), 24 deletions(-) (limited to 'packages/taler-wallet-webextension/src/wallet/ExchangeSelection/state.ts') diff --git a/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/state.ts b/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/state.ts index 7ad11e67c..ff3800ee8 100644 --- a/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/state.ts +++ b/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/state.ts @@ -30,37 +30,37 @@ export function useComponentState({ onCancel, onSelection, list: exchanges, - currentExchange, + initialValue, }: Props): State { const api = useBackendContext(); const { pushAlertOnError } = useAlertContext(); const { i18n } = useTranslationContext(); - const initialValue = exchanges.findIndex( - (e) => e.exchangeBaseUrl === currentExchange, + const initialValueIdx = exchanges.findIndex( + (e) => e.exchangeBaseUrl === initialValue, ); - if (initialValue === -1) { + if (initialValueIdx === -1) { throw Error( - `wrong usage of ExchangeSelection component, currentExchange '${currentExchange}' is not in the list of exchanges`, + `wrong usage of ExchangeSelection component, currentExchange '${initialValue}' is not in the list of exchanges`, ); } - const [value, setValue] = useState(String(initialValue)); + const [value, setValue] = useState(String(initialValueIdx)); const selectedIdx = parseInt(value, 10); - const selectedExchange = - exchanges.length == 0 ? undefined : exchanges[selectedIdx]; + const selectedExchange = exchanges[selectedIdx]; - const comparingExchanges = selectedIdx !== initialValue; + const comparingExchanges = selectedIdx !== initialValueIdx; const initialExchange = comparingExchanges - ? exchanges[initialValue] + ? exchanges[initialValueIdx] : undefined; const hook = useAsyncAsHook(async () => { - const selected = !selectedExchange - ? undefined - : await api.wallet.call(WalletApiOperation.GetExchangeDetailedInfo, { - exchangeBaseUrl: selectedExchange.exchangeBaseUrl, - }); + const selected = await api.wallet.call( + WalletApiOperation.GetExchangeDetailedInfo, + { + exchangeBaseUrl: selectedExchange.exchangeBaseUrl, + }, + ); const original = !initialExchange ? undefined @@ -70,7 +70,7 @@ export function useComponentState({ return { exchanges, - selected: selected?.exchange, + selected: selected.exchange, original: original?.exchange, }; }, [selectedExchange, initialExchange]); @@ -98,14 +98,6 @@ export function useComponentState({ const { selected, original } = hook.response; - if (selectedExchange === undefined || !selected) { - return { - status: "no-exchange", - error: undefined, - currency: undefined, - }; - } - const exchangeMap = exchanges.reduce( (prev, cur, idx) => ({ ...prev, [String(idx)]: cur.exchangeBaseUrl }), {} as Record, -- cgit v1.2.3