aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2021-11-24 09:52:58 -0300
committerSebastian <sebasjm@gmail.com>2021-11-24 09:53:05 -0300
commit668c0430c204c1233fc266b723ed1be308d5f3f1 (patch)
treedbed1b91eebfc2ca6761f94d2d52be97067dce45
parent0bfd4523b3408d9c841a1f25fd9ec86e81d6dd8f (diff)
fix exchange selection
-rw-r--r--packages/taler-wallet-webextension/src/components/SelectList.tsx20
-rw-r--r--packages/taler-wallet-webextension/src/cta/Withdraw.tsx28
2 files changed, 30 insertions, 18 deletions
diff --git a/packages/taler-wallet-webextension/src/components/SelectList.tsx b/packages/taler-wallet-webextension/src/components/SelectList.tsx
index 78dd2feb4..5bb06f9a8 100644
--- a/packages/taler-wallet-webextension/src/components/SelectList.tsx
+++ b/packages/taler-wallet-webextension/src/components/SelectList.tsx
@@ -36,6 +36,7 @@ export function SelectList({
onChange,
label,
description,
+ canBeNull,
}: Props): VNode {
return (
<Fragment>
@@ -49,20 +50,21 @@ export function SelectList({
<NiceSelect>
<select
name={name}
+ value={value}
onChange={(e) => {
- console.log(e.currentTarget.value, value);
onChange(e.currentTarget.value);
}}
>
- {value !== undefined ? (
- <option selected>{list[value]}</option>
- ) : (
- <option selected disabled>
- Select one option
- </option>
- )}
+ {value === undefined ||
+ (canBeNull && (
+ <option selected disabled>
+ Select one option
+ </option>
+ // ) : (
+ // <option selected>{list[value]}</option>
+ ))}
{Object.keys(list)
- .filter((l) => l !== value)
+ // .filter((l) => l !== value)
.map((key) => (
<option value={key} key={key}>
{list[key]}
diff --git a/packages/taler-wallet-webextension/src/cta/Withdraw.tsx b/packages/taler-wallet-webextension/src/cta/Withdraw.tsx
index eead51690..4703492cf 100644
--- a/packages/taler-wallet-webextension/src/cta/Withdraw.tsx
+++ b/packages/taler-wallet-webextension/src/cta/Withdraw.tsx
@@ -79,9 +79,11 @@ export function View({
}: ViewProps): VNode {
const needsReview = terms.status === "changed" || terms.status === "new";
- const [switchingExchange, setSwitchingExchange] = useState<
- string | undefined
- >(undefined);
+ const [switchingExchange, setSwitchingExchange] = useState(false);
+ const [nextExchange, setNextExchange] = useState<string | undefined>(
+ undefined,
+ );
+
const exchanges = knownExchanges.reduce(
(prev, ex) => ({ ...prev, [ex.exchangeBaseUrl]: ex.exchangeBaseUrl }),
{},
@@ -117,25 +119,33 @@ export function View({
</section>
{!reviewing && (
<section>
- {switchingExchange !== undefined ? (
+ {switchingExchange ? (
<Fragment>
<div>
<SelectList
label="Known exchanges"
list={exchanges}
- name=""
- onChange={onSwitchExchange}
+ value={nextExchange}
+ name="switchingExchange"
+ onChange={setNextExchange}
/>
</div>
<LinkSuccess
upperCased
- onClick={() => onSwitchExchange(switchingExchange)}
+ onClick={() => {
+ if (nextExchange !== undefined) {
+ onSwitchExchange(nextExchange);
+ }
+ setSwitchingExchange(false);
+ }}
>
- {i18n.str`Confirm exchange selection`}
+ {nextExchange === undefined
+ ? i18n.str`Cancel exchange selection`
+ : i18n.str`Confirm exchange selection`}
</LinkSuccess>
</Fragment>
) : (
- <LinkSuccess upperCased onClick={() => setSwitchingExchange("")}>
+ <LinkSuccess upperCased onClick={() => setSwitchingExchange(true)}>
{i18n.str`Switch exchange`}
</LinkSuccess>
)}