Skip to content

Commit 856fb6e

Browse files
authored
fix: Add loader to gas fee modal that waits for shielded data (#2042)
1 parent 12f12d0 commit 856fb6e

File tree

2 files changed

+27
-13
lines changed

2 files changed

+27
-13
lines changed

apps/namadillo/src/App/Common/GasFeeModal.tsx

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ export const GasFeeModal = ({
136136
return findUserBalanceByTokenAddress(item.token).gt(0);
137137
};
138138

139+
const isLoading = isShielded && !shieldedAmount.data;
140+
139141
return (
140142
<Modal onClose={onClose}>
141143
<div
@@ -153,12 +155,10 @@ export const GasFeeModal = ({
153155
>
154156
<IoClose />
155157
</i>
156-
157158
<h2 className="text-xl font-medium">Fee Options</h2>
158159
<div className="text-sm">
159160
Gas fees deducted from your Namada accounts
160161
</div>
161-
162162
<div className="text-sm mt-8 mb-1">Fee</div>
163163
<div className="grid grid-cols-3 rounded-sm overflow-hidden">
164164
{[
@@ -201,14 +201,15 @@ export const GasFeeModal = ({
201201
);
202202
})}
203203
</div>
204-
205204
<div className="grid grid-cols-[1.5fr_1fr_1fr] mb-1 mt-8 pr-9 gap-1">
206205
<span className="text-sm">Fee Token</span>
207206
<span className="text-xs text-neutral-500 text-right">Balance</span>
208207
<span className="text-xs text-neutral-500 text-right">Fee</span>
209208
</div>
209+
210210
<StyledSelectBox
211211
id="fee-token-select"
212+
disabled={isLoading}
212213
value={gasConfig.gasToken}
213214
containerProps={{
214215
className: twMerge(
@@ -283,15 +284,26 @@ export const GasFeeModal = ({
283284
</div>
284285
</div>
285286
<div className="text-right">
286-
{totalInDollars && (
287-
<FiatCurrency amount={totalInDollars} />
288-
)}
289-
<div className="text-neutral-500 text-xs">
290-
<TokenCurrency
291-
amount={displayAmount}
292-
symbol={asset.symbol}
287+
{isLoading ?
288+
<i
289+
className={clsx(
290+
"inline-block w-4 h-4 border-2",
291+
"border-transparent border-t-yellow rounded-[50%]",
292+
"animate-loadingSpinner"
293+
)}
293294
/>
294-
</div>
295+
: <>
296+
{totalInDollars && (
297+
<FiatCurrency amount={totalInDollars} />
298+
)}
299+
<div className="text-neutral-500 text-xs">
300+
<TokenCurrency
301+
amount={displayAmount}
302+
symbol={asset.symbol}
303+
/>
304+
</div>
305+
</>
306+
}
295307
</div>
296308
</div>
297309
),

packages/components/src/StyledSelectBox.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,10 @@ export const StyledSelectBox = <T extends string = string>({
9191
containerClassList
9292
)}
9393
role="button"
94-
aria-label="Open Navigation"
95-
onClick={() => setOpen(!open)}
94+
onClick={() => {
95+
if (props.disabled) return;
96+
setOpen(!open);
97+
}}
9698
{...otherContainerProps}
9799
>
98100
{selected ? selected.value : defaultValue}

0 commit comments

Comments
 (0)