fix fiat amount resetting on swap page (#3358)

* fix fiat amount resetting on swap page * fix pressing ALL in fiat input mode * populate amountController when disabling fiat mode * fix resetting to crypto amount after fiat amount is entered * fix rate fetching when switching currency for send all

malik1004x committed Jul 14, 2026 at 04:09 UTC f744e2228aa348acd96bdb064c72dfc77c069fac
1 file changed +11 -2
lib/new-ui/pages/swap_page.dart
+11 -2
@@ -271,7 +271,9 @@ class _NewSwapPageState extends State<NewSwapPage> {
271 widget.exchangeViewModel.changeReceiveAmount(amount: receiveAmountController.text);
272 } else {
273 printV("bestrate");
274 - if (depositAmountController.text == S.current.all)
274 + if ((depositKey.currentState?._fiatInputMode ?? false) ||
275 + depositAmountController.text.isEmpty ||
276 + depositAmountController.text == S.current.all)
277 widget.exchangeViewModel
278 .changeDepositAmount(amount: widget.exchangeViewModel.depositAmount);
279 else
@@ -1063,9 +1065,16 @@ class SwapAmountBoxState extends State<SwapAmountBox> {
1065 setState(() => _fiatInputMode = !_fiatInputMode);
1066 if (_fiatInputMode) {
1067 updateFiatAmount();
1068 + } else {
1069 + amountController.text = widget.exchangeViewModel.depositAmount;
1070 }
1071 },
1068 - onAllButtonPressed: widget.allAmount,
1072 + onAllButtonPressed: (){
1073 + setState(() {
1074 + _fiatInputMode = false;
1075 + });
1076 + widget.allAmount?.call();
1077 + },
1078 cryptoAmount: widget.isReceiverCard
1079 ? widget.exchangeViewModel.roundedReceiveAmount(6)
1080 : widget.exchangeViewModel.roundedDepositAmount(6),