diff --git a/frontend/pweb/lib/main.dart b/frontend/pweb/lib/main.dart index a25a7f0..e959c34 100644 --- a/frontend/pweb/lib/main.dart +++ b/frontend/pweb/lib/main.dart @@ -15,6 +15,8 @@ import 'package:pshared/provider/organizations.dart'; import 'package:pshared/provider/payment/amount.dart'; import 'package:pshared/provider/recipient/provider.dart'; import 'package:pshared/provider/recipient/pmethods.dart'; +import 'package:pshared/provider/payment/wallets.dart'; +import 'package:pshared/service/payment/wallets.dart'; import 'package:pweb/app/app.dart'; import 'package:pweb/app/timeago.dart'; @@ -23,13 +25,11 @@ import 'package:pweb/providers/mock_payment.dart'; import 'package:pweb/providers/operatioins.dart'; import 'package:pweb/providers/two_factor.dart'; import 'package:pweb/providers/upload_history.dart'; -import 'package:pshared/provider/payment/wallets.dart'; import 'package:pweb/providers/wallet_transactions.dart'; import 'package:pweb/services/operations.dart'; import 'package:pweb/services/payments/history.dart'; import 'package:pweb/services/posthog.dart'; import 'package:pweb/services/wallet_transactions.dart'; -import 'package:pshared/service/payment/wallets.dart'; import 'package:pweb/providers/account.dart'; diff --git a/frontend/pweb/lib/pages/payment_methods/add/card.dart b/frontend/pweb/lib/pages/payment_methods/add/card.dart index 9449338..6f27397 100644 --- a/frontend/pweb/lib/pages/payment_methods/add/card.dart +++ b/frontend/pweb/lib/pages/payment_methods/add/card.dart @@ -67,10 +67,17 @@ class _CardFormMinimalState extends State { } if (newData != null && newData != oldData) { - _panController.text = newData.pan; - _firstNameController.text = newData.firstName; - _lastNameController.text = newData.lastName; - WidgetsBinding.instance.addPostFrameCallback((_) => _emitIfValid()); + final hasPanChange = newData.pan != _panController.text; + final hasFirstNameChange = newData.firstName != _firstNameController.text; + final hasLastNameChange = newData.lastName != _lastNameController.text; + + if (hasPanChange) _panController.text = newData.pan; + if (hasFirstNameChange) _firstNameController.text = newData.firstName; + if (hasLastNameChange) _lastNameController.text = newData.lastName; + + if (hasPanChange || hasFirstNameChange || hasLastNameChange) { + WidgetsBinding.instance.addPostFrameCallback((_) => _emitIfValid()); + } } } diff --git a/frontend/pweb/lib/pages/payment_methods/add/crypto_address.dart b/frontend/pweb/lib/pages/payment_methods/add/crypto_address.dart index 780d761..2fa4b73 100644 --- a/frontend/pweb/lib/pages/payment_methods/add/crypto_address.dart +++ b/frontend/pweb/lib/pages/payment_methods/add/crypto_address.dart @@ -106,12 +106,21 @@ class _CryptoAddressFormState extends State { } if (newData != null && newData != oldData) { - _addressCtrl.text = newData.address; - _tokenCtrl.text = newData.asset?.tokenSymbol ?? ''; - _contractCtrl.text = newData.asset?.contractAddress ?? ''; - _memoCtrl.text = newData.memo ?? ''; - _chain = newData.asset?.chain ?? ChainNetwork.unspecified; - WidgetsBinding.instance.addPostFrameCallback((_) => _emitIfValid()); + final hasAddressChange = newData.address != _addressCtrl.text; + final hasTokenChange = newData.asset?.tokenSymbol != _tokenCtrl.text; + final hasContractChange = newData.asset?.contractAddress != _contractCtrl.text; + final hasMemoChange = newData.memo != _memoCtrl.text; + final hasChainChange = newData.asset?.chain != _chain; + + if (hasAddressChange) _addressCtrl.text = newData.address; + if (hasTokenChange) _tokenCtrl.text = newData.asset?.tokenSymbol ?? ''; + if (hasContractChange) _contractCtrl.text = newData.asset?.contractAddress ?? ''; + if (hasMemoChange) _memoCtrl.text = newData.memo ?? ''; + if (hasChainChange) _chain = newData.asset?.chain ?? ChainNetwork.unspecified; + + if (hasAddressChange || hasTokenChange || hasContractChange || hasMemoChange || hasChainChange) { + WidgetsBinding.instance.addPostFrameCallback((_) => _emitIfValid()); + } } } diff --git a/frontend/pweb/lib/pages/payment_methods/add/iban.dart b/frontend/pweb/lib/pages/payment_methods/add/iban.dart index 6bd7fd4..7027162 100644 --- a/frontend/pweb/lib/pages/payment_methods/add/iban.dart +++ b/frontend/pweb/lib/pages/payment_methods/add/iban.dart @@ -69,11 +69,19 @@ class _IbanFormState extends State { } if (newData != null && newData != oldData) { - _ibanController.text = newData.iban; - _accountHolderController.text = newData.accountHolder; - _bicController.text = newData.bic ?? ''; - _bankNameController.text = newData.bankName ?? ''; - WidgetsBinding.instance.addPostFrameCallback((_) => _emitIfValid()); + final hasIbanChange = newData.iban != _ibanController.text; + final hasHolderChange = newData.accountHolder != _accountHolderController.text; + final hasBicChange = (newData.bic ?? '') != _bicController.text; + final hasBankNameChange = (newData.bankName ?? '') != _bankNameController.text; + + if (hasIbanChange) _ibanController.text = newData.iban; + if (hasHolderChange) _accountHolderController.text = newData.accountHolder; + if (hasBicChange) _bicController.text = newData.bic ?? ''; + if (hasBankNameChange) _bankNameController.text = newData.bankName ?? ''; + + if (hasIbanChange || hasHolderChange || hasBicChange || hasBankNameChange) { + WidgetsBinding.instance.addPostFrameCallback((_) => _emitIfValid()); + } } } diff --git a/frontend/pweb/lib/pages/payment_methods/add/russian_bank.dart b/frontend/pweb/lib/pages/payment_methods/add/russian_bank.dart index e3f927b..a7f7695 100644 --- a/frontend/pweb/lib/pages/payment_methods/add/russian_bank.dart +++ b/frontend/pweb/lib/pages/payment_methods/add/russian_bank.dart @@ -82,14 +82,31 @@ class _RussianBankFormState extends State { } if (newData != null && newData != oldData) { - _recipientNameController.text = newData.recipientName; - _innController.text = newData.inn; - _kppController.text = newData.kpp; - _bankNameController.text = newData.bankName; - _bikController.text = newData.bik; - _accountNumberController.text = newData.accountNumber; - _correspondentAccountController.text = newData.correspondentAccount; - WidgetsBinding.instance.addPostFrameCallback((_) => _emitIfValid()); + final hasRecipientNameChange = newData.recipientName != _recipientNameController.text; + final hasInnChange = newData.inn != _innController.text; + final hasKppChange = newData.kpp != _kppController.text; + final hasBankNameChange = newData.bankName != _bankNameController.text; + final hasBikChange = newData.bik != _bikController.text; + final hasAccountNumberChange = newData.accountNumber != _accountNumberController.text; + final hasCorrespondentAccountChange = newData.correspondentAccount != _correspondentAccountController.text; + + if (hasRecipientNameChange) _recipientNameController.text = newData.recipientName; + if (hasInnChange) _innController.text = newData.inn; + if (hasKppChange) _kppController.text = newData.kpp; + if (hasBankNameChange) _bankNameController.text = newData.bankName; + if (hasBikChange) _bikController.text = newData.bik; + if (hasAccountNumberChange) _accountNumberController.text = newData.accountNumber; + if (hasCorrespondentAccountChange) _correspondentAccountController.text = newData.correspondentAccount; + + if (hasRecipientNameChange || + hasInnChange || + hasKppChange || + hasBankNameChange || + hasBikChange || + hasAccountNumberChange || + hasCorrespondentAccountChange) { + WidgetsBinding.instance.addPostFrameCallback((_) => _emitIfValid()); + } } } diff --git a/frontend/pweb/lib/pages/payment_methods/add/wallet.dart b/frontend/pweb/lib/pages/payment_methods/add/wallet.dart index 87df4de..6303eeb 100644 --- a/frontend/pweb/lib/pages/payment_methods/add/wallet.dart +++ b/frontend/pweb/lib/pages/payment_methods/add/wallet.dart @@ -51,7 +51,9 @@ class _WalletFormState extends State { } if (newData != null && newData != oldData) { - _walletIdController.text = newData.walletId; + if (newData.walletId != _walletIdController.text) { + _walletIdController.text = newData.walletId; + } } } diff --git a/frontend/pweb/lib/pages/payout_page/page.dart b/frontend/pweb/lib/pages/payout_page/page.dart index 45262ad..559a65d 100644 --- a/frontend/pweb/lib/pages/payout_page/page.dart +++ b/frontend/pweb/lib/pages/payout_page/page.dart @@ -3,8 +3,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:pshared/provider/recipient/pmethods.dart'; - import 'package:pshared/models/payment/wallet.dart'; + import 'package:pweb/pages/payout_page/methods/widget.dart'; import 'package:pweb/pages/payout_page/wallet/wigets.dart'; diff --git a/frontend/pweb/lib/pages/payout_page/wallet/card.dart b/frontend/pweb/lib/pages/payout_page/wallet/card.dart index b4c0579..e70647d 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/card.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/card.dart @@ -3,11 +3,11 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:pshared/utils/currency.dart'; - import 'package:pshared/models/payment/wallet.dart'; -import 'package:pweb/pages/dashboard/buttons/balance/amount.dart'; import 'package:pshared/provider/payment/wallets.dart'; +import 'package:pweb/pages/dashboard/buttons/balance/amount.dart'; + import 'package:pweb/generated/i18n/app_localizations.dart'; diff --git a/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/send.dart b/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/send.dart index dd09197..878f7b7 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/send.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/send.dart @@ -3,9 +3,9 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:pshared/models/payment/type.dart'; +import 'package:pshared/provider/payment/wallets.dart'; import 'package:pweb/app/router/payout_routes.dart'; -import 'package:pshared/provider/payment/wallets.dart'; import 'package:pweb/widgets/sidebar/destinations.dart'; import 'package:pweb/generated/i18n/app_localizations.dart'; diff --git a/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/top_up.dart b/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/top_up.dart index cb467c5..c2d6c95 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/top_up.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/top_up.dart @@ -2,8 +2,9 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:pweb/app/router/payout_routes.dart'; import 'package:pshared/provider/payment/wallets.dart'; + +import 'package:pweb/app/router/payout_routes.dart'; import 'package:pweb/widgets/sidebar/destinations.dart'; import 'package:pweb/generated/i18n/app_localizations.dart'; diff --git a/frontend/pweb/lib/pages/payout_page/wallet/edit/fields.dart b/frontend/pweb/lib/pages/payout_page/wallet/edit/fields.dart index 761d94d..812ad97 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/edit/fields.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/edit/fields.dart @@ -3,9 +3,10 @@ import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; -import 'package:pweb/pages/dashboard/buttons/balance/amount.dart'; import 'package:pshared/provider/payment/wallets.dart'; +import 'package:pweb/pages/dashboard/buttons/balance/amount.dart'; + class WalletEditFields extends StatelessWidget { const WalletEditFields({super.key}); diff --git a/frontend/pweb/lib/pages/payout_page/wallet/edit/page.dart b/frontend/pweb/lib/pages/payout_page/wallet/edit/page.dart index 6bf39ec..843a6f7 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/edit/page.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/edit/page.dart @@ -2,11 +2,12 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:pshared/provider/payment/wallets.dart'; + import 'package:pweb/pages/payout_page/wallet/edit/buttons/buttons.dart'; import 'package:pweb/pages/payout_page/wallet/edit/fields.dart'; import 'package:pweb/pages/payout_page/wallet/edit/header.dart'; import 'package:pweb/pages/payout_page/wallet/history/history.dart'; -import 'package:pshared/provider/payment/wallets.dart'; import 'package:pweb/utils/dimensions.dart'; import 'package:pweb/generated/i18n/app_localizations.dart'; diff --git a/frontend/pweb/lib/pages/payout_page/wallet/history/history.dart b/frontend/pweb/lib/pages/payout_page/wallet/history/history.dart index b6e687a..70d7957 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/history/history.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/history/history.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:pshared/models/payment/wallet.dart'; + import 'package:pweb/pages/payout_page/wallet/history/filters.dart'; import 'package:pweb/pages/payout_page/wallet/history/table.dart'; import 'package:pweb/providers/wallet_transactions.dart'; diff --git a/frontend/pweb/lib/pages/payout_page/wallet/wigets.dart b/frontend/pweb/lib/pages/payout_page/wallet/wigets.dart index cb1edf0..58cdaae 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/wigets.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/wigets.dart @@ -3,9 +3,10 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:pshared/models/payment/wallet.dart'; -import 'package:pweb/pages/payout_page/wallet/card.dart'; import 'package:pshared/provider/payment/wallets.dart'; +import 'package:pweb/pages/payout_page/wallet/card.dart'; + class WalletWidgets extends StatelessWidget { final void Function(Wallet) onWalletTap; diff --git a/frontend/pweb/lib/pages/wallet_top_up/content.dart b/frontend/pweb/lib/pages/wallet_top_up/content.dart index 9fa9ced..f11a630 100644 --- a/frontend/pweb/lib/pages/wallet_top_up/content.dart +++ b/frontend/pweb/lib/pages/wallet_top_up/content.dart @@ -3,8 +3,8 @@ import 'package:flutter/material.dart'; import 'package:pshared/models/payment/chain_network.dart'; import 'package:pshared/utils/currency.dart'; import 'package:pshared/utils/l10n/chain.dart'; - import 'package:pshared/models/payment/wallet.dart'; + import 'package:pweb/pages/wallet_top_up/details.dart'; import 'package:pweb/pages/wallet_top_up/header.dart'; import 'package:pweb/pages/wallet_top_up/meta.dart'; diff --git a/frontend/pweb/lib/pages/wallet_top_up/page.dart b/frontend/pweb/lib/pages/wallet_top_up/page.dart index e5ab050..00e02b9 100644 --- a/frontend/pweb/lib/pages/wallet_top_up/page.dart +++ b/frontend/pweb/lib/pages/wallet_top_up/page.dart @@ -2,9 +2,10 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:pweb/pages/wallet_top_up/content.dart'; import 'package:pshared/provider/payment/wallets.dart'; +import 'package:pweb/pages/wallet_top_up/content.dart'; + import 'package:pweb/generated/i18n/app_localizations.dart';