From e0820c47c2b05c54e1012c17cd1e6571b93b4d3f Mon Sep 17 00:00:00 2001 From: Stephan D Date: Wed, 24 Dec 2025 19:59:50 +0100 Subject: [PATCH] added wallet source to quotation preparation --- .../pshared/lib/data/mapper/wallet/asset.dart | 2 +- .../lib/data/mapper/wallet/ui.dart} | 9 +-- .../lib/models/payment/methods/type.dart | 2 + .../lib/models/payment}/wallet.dart | 1 + frontend/pshared/lib/models/wallet/asset.dart | 14 +++++ .../pshared/lib/models/wallet/wallet.dart | 44 +++++-------- .../lib/provider/payment/quotation.dart | 63 +++++++++++-------- .../lib/provider/payment}/wallets.dart | 4 +- .../lib/service/payment}/wallets.dart | 5 +- frontend/pshared/lib/utils/currency.dart | 15 +++++ .../pweb/lib/app/router/payout_shell.dart | 4 +- frontend/pweb/lib/main.dart | 9 +-- .../dashboard/buttons/balance/amount.dart | 2 +- .../dashboard/buttons/balance/balance.dart | 4 +- .../pages/dashboard/buttons/balance/card.dart | 4 +- .../dashboard/buttons/balance/carousel.dart | 2 +- .../pweb/lib/pages/dashboard/dashboard.dart | 2 +- .../dashboard/payouts/summary/widget.dart | 2 +- .../lib/pages/dashboard/payouts/widget.dart | 5 +- .../pweb/lib/pages/payment_methods/page.dart | 4 +- .../payment_page/method_selector.dart | 4 +- frontend/pweb/lib/pages/payout_page/page.dart | 2 +- .../lib/pages/payout_page/wallet/card.dart | 4 +- .../wallet/edit/buttons/buttons.dart | 2 +- .../payout_page/wallet/edit/buttons/save.dart | 2 +- .../payout_page/wallet/edit/buttons/send.dart | 2 +- .../wallet/edit/buttons/top_up.dart | 2 +- .../pages/payout_page/wallet/edit/fields.dart | 2 +- .../pages/payout_page/wallet/edit/header.dart | 2 +- .../pages/payout_page/wallet/edit/page.dart | 2 +- .../payout_page/wallet/history/history.dart | 2 +- .../lib/pages/payout_page/wallet/wigets.dart | 10 ++- .../pweb/lib/pages/wallet_top_up/content.dart | 2 +- .../pweb/lib/pages/wallet_top_up/page.dart | 2 +- frontend/pweb/lib/utils/payment/dropdown.dart | 52 +++++++-------- 35 files changed, 151 insertions(+), 138 deletions(-) rename frontend/{pweb/lib/data/mappers/wallet_ui.dart => pshared/lib/data/mapper/wallet/ui.dart} (69%) rename frontend/{pweb/lib/models => pshared/lib/models/payment}/wallet.dart (99%) create mode 100644 frontend/pshared/lib/models/wallet/asset.dart rename frontend/{pweb/lib/providers => pshared/lib/provider/payment}/wallets.dart (96%) rename frontend/{pweb/lib/services => pshared/lib/service/payment}/wallets.dart (89%) diff --git a/frontend/pshared/lib/data/mapper/wallet/asset.dart b/frontend/pshared/lib/data/mapper/wallet/asset.dart index e555096..5096e0a 100644 --- a/frontend/pshared/lib/data/mapper/wallet/asset.dart +++ b/frontend/pshared/lib/data/mapper/wallet/asset.dart @@ -1,6 +1,6 @@ import 'package:pshared/data/dto/wallet/asset.dart'; import 'package:pshared/data/mapper/payment/enums.dart'; -import 'package:pshared/models/wallet/wallet.dart'; +import 'package:pshared/models/wallet/asset.dart'; extension WalletAssetDTOMapper on WalletAssetDTO { diff --git a/frontend/pweb/lib/data/mappers/wallet_ui.dart b/frontend/pshared/lib/data/mapper/wallet/ui.dart similarity index 69% rename from frontend/pweb/lib/data/mappers/wallet_ui.dart rename to frontend/pshared/lib/data/mapper/wallet/ui.dart index ed8e82b..b90f1b0 100644 --- a/frontend/pweb/lib/data/mappers/wallet_ui.dart +++ b/frontend/pshared/lib/data/mapper/wallet/ui.dart @@ -1,17 +1,14 @@ import 'package:pshared/models/currency.dart'; import 'package:pshared/models/wallet/wallet.dart' as domain; +import 'package:pshared/models/payment/wallet.dart'; +import 'package:pshared/utils/currency.dart'; -import 'package:pweb/models/wallet.dart'; extension WalletUiMapper on domain.WalletModel { Wallet toUi() { final amountStr = availableMoney?.amount ?? balance?.available?.amount ?? '0'; - final currencyStr = availableMoney?.currency ?? balance?.available?.currency ?? Currency.usd.toString().toUpperCase(); final parsedAmount = double.tryParse(amountStr) ?? 0; - final currency = Currency.values.firstWhere( - (c) => c.name.toUpperCase() == currencyStr.toUpperCase(), - orElse: () => Currency.usd, - ); + final currency = currencyStringToCode(asset.tokenSymbol); return Wallet( id: walletRef, walletUserID: walletRef, diff --git a/frontend/pshared/lib/models/payment/methods/type.dart b/frontend/pshared/lib/models/payment/methods/type.dart index e169d7e..ec859d1 100644 --- a/frontend/pshared/lib/models/payment/methods/type.dart +++ b/frontend/pshared/lib/models/payment/methods/type.dart @@ -3,6 +3,7 @@ import 'package:pshared/models/payment/methods/card.dart'; import 'package:pshared/models/payment/methods/crypto_address.dart'; import 'package:pshared/models/payment/methods/data.dart'; import 'package:pshared/models/payment/methods/iban.dart'; +import 'package:pshared/models/payment/methods/managed_wallet.dart'; import 'package:pshared/models/payment/methods/russian_bank.dart'; import 'package:pshared/models/payment/methods/wallet.dart'; import 'package:pshared/models/payment/type.dart'; @@ -43,6 +44,7 @@ class PaymentMethod implements PermissionBoundStorable, Describable { IbanPaymentMethod? get ibanData => dataAsOrNull(); RussianBankAccountPaymentMethod? get bankAccountData => dataAsOrNull(); WalletPaymentMethod? get walletData => dataAsOrNull(); + ManagedWalletPaymentMethod? get managedWalletData => dataAsOrNull(); CryptoAddressPaymentMethod? get cryptoAddressData => dataAsOrNull(); @override diff --git a/frontend/pweb/lib/models/wallet.dart b/frontend/pshared/lib/models/payment/wallet.dart similarity index 99% rename from frontend/pweb/lib/models/wallet.dart rename to frontend/pshared/lib/models/payment/wallet.dart index b7268f4..24ee7d5 100644 --- a/frontend/pweb/lib/models/wallet.dart +++ b/frontend/pshared/lib/models/payment/wallet.dart @@ -2,6 +2,7 @@ import 'package:pshared/models/currency.dart'; import 'package:pshared/models/describable.dart'; import 'package:pshared/models/payment/chain_network.dart'; + class Wallet implements Describable { final String id; final String walletUserID; // ID or number that we show the user diff --git a/frontend/pshared/lib/models/wallet/asset.dart b/frontend/pshared/lib/models/wallet/asset.dart new file mode 100644 index 0000000..9cdb8ef --- /dev/null +++ b/frontend/pshared/lib/models/wallet/asset.dart @@ -0,0 +1,14 @@ +import 'package:pshared/models/payment/chain_network.dart'; + + +class WalletAsset { + final ChainNetwork chain; + final String tokenSymbol; + final String contractAddress; + + const WalletAsset({ + required this.chain, + required this.tokenSymbol, + required this.contractAddress, + }); +} diff --git a/frontend/pshared/lib/models/wallet/wallet.dart b/frontend/pshared/lib/models/wallet/wallet.dart index 3273407..9b1be42 100644 --- a/frontend/pshared/lib/models/wallet/wallet.dart +++ b/frontend/pshared/lib/models/wallet/wallet.dart @@ -1,21 +1,9 @@ import 'package:pshared/models/describable.dart'; -import 'package:pshared/models/payment/chain_network.dart'; +import 'package:pshared/models/wallet/asset.dart'; import 'package:pshared/models/wallet/balance.dart'; import 'package:pshared/models/wallet/money.dart'; -class WalletAsset { - final ChainNetwork chain; - final String tokenSymbol; - final String contractAddress; - - const WalletAsset({ - required this.chain, - required this.tokenSymbol, - required this.contractAddress, - }); -} - class WalletModel implements Describable { final String walletRef; final String organizationRef; @@ -55,20 +43,18 @@ class WalletModel implements Describable { WalletBalance? balance, WalletMoney? availableMoney, Describable? describable, - }) { - return WalletModel( - walletRef: walletRef, - organizationRef: organizationRef, - ownerRef: ownerRef, - asset: asset, - depositAddress: depositAddress, - status: status, - metadata: metadata, - createdAt: createdAt, - updatedAt: updatedAt, - balance: balance ?? this.balance, - availableMoney: availableMoney ?? this.availableMoney, - describable: describable ?? this.describable, - ); - } + }) => WalletModel( + walletRef: walletRef, + organizationRef: organizationRef, + ownerRef: ownerRef, + asset: asset, + depositAddress: depositAddress, + status: status, + metadata: metadata, + createdAt: createdAt, + updatedAt: updatedAt, + balance: balance ?? this.balance, + availableMoney: availableMoney ?? this.availableMoney, + describable: describable ?? this.describable, + ); } diff --git a/frontend/pshared/lib/provider/payment/quotation.dart b/frontend/pshared/lib/provider/payment/quotation.dart index d8c6fbf..f614709 100644 --- a/frontend/pshared/lib/provider/payment/quotation.dart +++ b/frontend/pshared/lib/provider/payment/quotation.dart @@ -1,8 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:pshared/models/asset.dart'; import 'package:uuid/uuid.dart'; +import 'package:pshared/api/requests/payment/quote.dart'; +import 'package:pshared/data/mapper/payment/intent/payment.dart'; +import 'package:pshared/models/asset.dart'; import 'package:pshared/models/payment/currency_pair.dart'; import 'package:pshared/models/payment/fx/intent.dart'; import 'package:pshared/models/payment/fx/side.dart'; @@ -11,14 +13,14 @@ import 'package:pshared/models/payment/methods/card.dart'; import 'package:pshared/models/payment/methods/managed_wallet.dart'; import 'package:pshared/models/payment/money.dart'; import 'package:pshared/models/payment/settlement_mode.dart'; -import 'package:pshared/provider/payment/amount.dart'; -import 'package:pshared/api/requests/payment/quote.dart'; -import 'package:pshared/data/mapper/payment/intent/payment.dart'; import 'package:pshared/models/payment/intent.dart'; import 'package:pshared/models/payment/quote.dart'; import 'package:pshared/provider/organizations.dart'; +import 'package:pshared/provider/payment/amount.dart'; +import 'package:pshared/provider/payment/wallets.dart'; import 'package:pshared/provider/resource.dart'; import 'package:pshared/service/payment/quotation.dart'; +import 'package:pshared/utils/currency.dart'; class QuotationProvider extends ChangeNotifier { @@ -26,31 +28,38 @@ class QuotationProvider extends ChangeNotifier { late OrganizationsProvider _organizations; bool _isLoaded = false; - void update(OrganizationsProvider venue, PaymentAmountProvider payment) { + void update( + OrganizationsProvider venue, + PaymentAmountProvider payment, + WalletsProvider wallets, + ) { _organizations = venue; - getQuotation(PaymentIntent( - kind: PaymentKind.payout, - amount: Money( - amount: payment.amount.toString(), - currency: 'USDT', - ), - destination: CardPaymentMethod( - pan: '4000000000000077', - firstName: 'John', - lastName: 'Doe', - ), - source: ManagedWalletPaymentMethod( - managedWalletRef: '', - ), - fx: FxIntent( - pair: CurrencyPair( - base: 'USDT', - quote: 'RUB', + if (wallets.selectedWallet != null) { + getQuotation(PaymentIntent( + kind: PaymentKind.payout, + amount: Money( + amount: payment.amount.toString(), + // TODO: adapt to possible other sources + currency: currencyCodeToString(wallets.selectedWallet!.currency), ), - side: FxSide.sellBaseBuyQuote, - ), - settlementMode: payment.payerCoversFee ? SettlementMode.fixReceived : SettlementMode.fixSource, - )); + destination: CardPaymentMethod( + pan: '4000000000000077', + firstName: 'John', + lastName: 'Doe', + ), + source: ManagedWalletPaymentMethod( + managedWalletRef: wallets.selectedWallet!.id, + ), + fx: FxIntent( + pair: CurrencyPair( + base: currencyCodeToString(wallets.selectedWallet!.currency), + quote: 'RUB', + ), + side: FxSide.sellBaseBuyQuote, + ), + settlementMode: payment.payerCoversFee ? SettlementMode.fixReceived : SettlementMode.fixSource, + )); + } } PaymentQuote? get quotation => _quotation.data; diff --git a/frontend/pweb/lib/providers/wallets.dart b/frontend/pshared/lib/provider/payment/wallets.dart similarity index 96% rename from frontend/pweb/lib/providers/wallets.dart rename to frontend/pshared/lib/provider/payment/wallets.dart index 6a673ce..4629cec 100644 --- a/frontend/pweb/lib/providers/wallets.dart +++ b/frontend/pshared/lib/provider/payment/wallets.dart @@ -1,11 +1,11 @@ import 'package:flutter/material.dart'; +import 'package:pshared/models/payment/wallet.dart'; import 'package:pshared/provider/organizations.dart'; import 'package:pshared/provider/resource.dart'; +import 'package:pshared/service/payment/wallets.dart'; import 'package:pshared/utils/exception.dart'; -import 'package:pweb/models/wallet.dart'; -import 'package:pweb/services/wallets.dart'; class WalletsProvider with ChangeNotifier { diff --git a/frontend/pweb/lib/services/wallets.dart b/frontend/pshared/lib/service/payment/wallets.dart similarity index 89% rename from frontend/pweb/lib/services/wallets.dart rename to frontend/pshared/lib/service/payment/wallets.dart index c14c87c..761dfba 100644 --- a/frontend/pweb/lib/services/wallets.dart +++ b/frontend/pshared/lib/service/payment/wallets.dart @@ -1,8 +1,7 @@ +import 'package:pshared/data/mapper/wallet/ui.dart'; +import 'package:pshared/models/payment/wallet.dart'; import 'package:pshared/service/wallet.dart' as shared_wallet_service; -import 'package:pweb/models/wallet.dart'; -import 'package:pweb/data/mappers/wallet_ui.dart'; - abstract class WalletsService { Future> getWallets(String organizationRef); diff --git a/frontend/pshared/lib/utils/currency.dart b/frontend/pshared/lib/utils/currency.dart index a739817..ae46218 100644 --- a/frontend/pshared/lib/utils/currency.dart +++ b/frontend/pshared/lib/utils/currency.dart @@ -48,6 +48,21 @@ Currency currencyStringToCode(String currencyCode) { } } +String currencyCodeToString(Currency currencyCode) { + switch (currencyCode) { + case Currency.usd: + return 'USD'; + case Currency.usdt: + return 'USDT'; + case Currency.usdc: + return 'USDC'; + case Currency.rub: + return 'RUB'; + case Currency.eur: + return 'EUR'; + } +} + IconData iconForCurrencyType(Currency currencyCode) { switch (currencyCode) { case Currency.usd: diff --git a/frontend/pweb/lib/app/router/payout_shell.dart b/frontend/pweb/lib/app/router/payout_shell.dart index 64be50c..7662df4 100644 --- a/frontend/pweb/lib/app/router/payout_shell.dart +++ b/frontend/pweb/lib/app/router/payout_shell.dart @@ -10,7 +10,7 @@ import 'package:pshared/provider/recipient/provider.dart'; import 'package:pweb/app/router/pages.dart'; import 'package:pweb/app/router/payout_routes.dart'; -import 'package:pweb/models/wallet.dart'; +import 'package:pshared/models/payment/wallet.dart'; import 'package:pweb/pages/address_book/form/page.dart'; import 'package:pweb/pages/address_book/page/page.dart'; import 'package:pweb/pages/dashboard/dashboard.dart'; @@ -20,7 +20,7 @@ import 'package:pweb/pages/payout_page/wallet/edit/page.dart'; import 'package:pweb/pages/report/page.dart'; import 'package:pweb/pages/settings/profile/page.dart'; import 'package:pweb/pages/wallet_top_up/page.dart'; -import 'package:pweb/providers/wallets.dart'; +import 'package:pshared/provider/payment/wallets.dart'; import 'package:pweb/widgets/error/snackbar.dart'; import 'package:pweb/widgets/sidebar/destinations.dart'; import 'package:pweb/widgets/sidebar/page.dart'; diff --git a/frontend/pweb/lib/main.dart b/frontend/pweb/lib/main.dart index cd0ae9f..a25a7f0 100644 --- a/frontend/pweb/lib/main.dart +++ b/frontend/pweb/lib/main.dart @@ -13,7 +13,6 @@ import 'package:pshared/provider/permissions.dart'; import 'package:pshared/provider/account.dart'; import 'package:pshared/provider/organizations.dart'; import 'package:pshared/provider/payment/amount.dart'; -import 'package:pshared/provider/payment/quotation.dart'; import 'package:pshared/provider/recipient/provider.dart'; import 'package:pshared/provider/recipient/pmethods.dart'; @@ -24,13 +23,13 @@ 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:pweb/providers/wallets.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:pweb/services/wallets.dart'; +import 'package:pshared/service/payment/wallets.dart'; import 'package:pweb/providers/account.dart'; @@ -100,10 +99,6 @@ void main() async { ChangeNotifierProvider( create: (_) => PaymentAmountProvider(), ), - ChangeNotifierProxyProvider2( - create: (_) => QuotationProvider(), - update: (context, orgnization, payment, provider) => provider!..update(orgnization, payment), - ), ], child: const PayApp(), ), diff --git a/frontend/pweb/lib/pages/dashboard/buttons/balance/amount.dart b/frontend/pweb/lib/pages/dashboard/buttons/balance/amount.dart index 49026ad..4c0b9f8 100644 --- a/frontend/pweb/lib/pages/dashboard/buttons/balance/amount.dart +++ b/frontend/pweb/lib/pages/dashboard/buttons/balance/amount.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:pshared/utils/currency.dart'; -import 'package:pweb/models/wallet.dart'; +import 'package:pshared/models/payment/wallet.dart'; class BalanceAmount extends StatelessWidget { diff --git a/frontend/pweb/lib/pages/dashboard/buttons/balance/balance.dart b/frontend/pweb/lib/pages/dashboard/buttons/balance/balance.dart index 5afc3bb..ccedb11 100644 --- a/frontend/pweb/lib/pages/dashboard/buttons/balance/balance.dart +++ b/frontend/pweb/lib/pages/dashboard/buttons/balance/balance.dart @@ -2,9 +2,9 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:pweb/models/wallet.dart'; +import 'package:pshared/models/payment/wallet.dart'; import 'package:pweb/pages/dashboard/buttons/balance/carousel.dart'; -import 'package:pweb/providers/wallets.dart'; +import 'package:pshared/provider/payment/wallets.dart'; import 'package:pweb/generated/i18n/app_localizations.dart'; diff --git a/frontend/pweb/lib/pages/dashboard/buttons/balance/card.dart b/frontend/pweb/lib/pages/dashboard/buttons/balance/card.dart index d3668fc..612e303 100644 --- a/frontend/pweb/lib/pages/dashboard/buttons/balance/card.dart +++ b/frontend/pweb/lib/pages/dashboard/buttons/balance/card.dart @@ -2,12 +2,12 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:pweb/models/wallet.dart'; +import 'package:pshared/models/payment/wallet.dart'; import 'package:pweb/pages/dashboard/buttons/balance/add_funds.dart'; import 'package:pweb/pages/dashboard/buttons/balance/amount.dart'; import 'package:pweb/pages/dashboard/buttons/balance/config.dart'; import 'package:pweb/pages/dashboard/buttons/balance/header.dart'; -import 'package:pweb/providers/wallets.dart'; +import 'package:pshared/provider/payment/wallets.dart'; class WalletCard extends StatelessWidget { diff --git a/frontend/pweb/lib/pages/dashboard/buttons/balance/carousel.dart b/frontend/pweb/lib/pages/dashboard/buttons/balance/carousel.dart index 1d98204..669ed80 100644 --- a/frontend/pweb/lib/pages/dashboard/buttons/balance/carousel.dart +++ b/frontend/pweb/lib/pages/dashboard/buttons/balance/carousel.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:pweb/models/wallet.dart'; +import 'package:pshared/models/payment/wallet.dart'; import 'package:pweb/pages/dashboard/buttons/balance/card.dart'; import 'package:pweb/pages/dashboard/buttons/balance/config.dart'; import 'package:pweb/pages/dashboard/buttons/balance/indicator.dart'; diff --git a/frontend/pweb/lib/pages/dashboard/dashboard.dart b/frontend/pweb/lib/pages/dashboard/dashboard.dart index 20e827f..e1d036b 100644 --- a/frontend/pweb/lib/pages/dashboard/dashboard.dart +++ b/frontend/pweb/lib/pages/dashboard/dashboard.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:pshared/models/payment/type.dart'; import 'package:pshared/models/recipient/recipient.dart'; -import 'package:pweb/models/wallet.dart'; +import 'package:pshared/models/payment/wallet.dart'; import 'package:pweb/pages/dashboard/buttons/balance/balance.dart'; import 'package:pweb/pages/dashboard/buttons/buttons.dart'; import 'package:pweb/pages/dashboard/payouts/multiple/title.dart'; diff --git a/frontend/pweb/lib/pages/dashboard/payouts/summary/widget.dart b/frontend/pweb/lib/pages/dashboard/payouts/summary/widget.dart index f07fbe6..36e91e9 100644 --- a/frontend/pweb/lib/pages/dashboard/payouts/summary/widget.dart +++ b/frontend/pweb/lib/pages/dashboard/payouts/summary/widget.dart @@ -8,7 +8,7 @@ import 'package:pweb/pages/dashboard/payouts/summary/fee.dart'; import 'package:pweb/pages/dashboard/payouts/summary/recipient_receives.dart'; import 'package:pweb/pages/dashboard/payouts/summary/sent_amount.dart'; import 'package:pweb/pages/dashboard/payouts/summary/total.dart'; -import 'package:pweb/providers/wallets.dart'; +import 'package:pshared/provider/payment/wallets.dart'; class PaymentSummary extends StatelessWidget { diff --git a/frontend/pweb/lib/pages/dashboard/payouts/widget.dart b/frontend/pweb/lib/pages/dashboard/payouts/widget.dart index 27cda2e..3db9a49 100644 --- a/frontend/pweb/lib/pages/dashboard/payouts/widget.dart +++ b/frontend/pweb/lib/pages/dashboard/payouts/widget.dart @@ -5,6 +5,7 @@ import 'package:provider/provider.dart'; import 'package:pshared/provider/organizations.dart'; import 'package:pshared/provider/payment/amount.dart'; import 'package:pshared/provider/payment/quotation.dart'; +import 'package:pshared/provider/payment/wallets.dart'; import 'package:pweb/pages/dashboard/payouts/form.dart'; @@ -18,9 +19,9 @@ class PaymentFromWrappingWidget extends StatelessWidget { ChangeNotifierProvider( create: (_) => PaymentAmountProvider(), ), - ChangeNotifierProxyProvider2( + ChangeNotifierProxyProvider3( create: (_) => QuotationProvider(), - update: (context, orgnization, payment, provider) => provider!..update(orgnization, payment), + update: (context, orgnization, payment, wallet, provider) => provider!..update(orgnization, payment, wallet), ), ], child: const PaymentFormWidget(), diff --git a/frontend/pweb/lib/pages/payment_methods/page.dart b/frontend/pweb/lib/pages/payment_methods/page.dart index ccf4b7a..6cc7520 100644 --- a/frontend/pweb/lib/pages/payment_methods/page.dart +++ b/frontend/pweb/lib/pages/payment_methods/page.dart @@ -11,10 +11,10 @@ import 'package:pshared/models/recipient/recipient.dart'; import 'package:pshared/provider/recipient/pmethods.dart'; import 'package:pshared/provider/recipient/provider.dart'; -import 'package:pweb/models/wallet.dart'; +import 'package:pshared/models/payment/wallet.dart'; import 'package:pweb/providers/payment_flow.dart'; import 'package:pweb/pages/payment_methods/payment_page/body.dart'; -import 'package:pweb/providers/wallets.dart'; +import 'package:pshared/provider/payment/wallets.dart'; import 'package:pweb/widgets/sidebar/destinations.dart'; import 'package:pweb/services/posthog.dart'; diff --git a/frontend/pweb/lib/pages/payment_methods/payment_page/method_selector.dart b/frontend/pweb/lib/pages/payment_methods/payment_page/method_selector.dart index 512ca3e..42404c0 100644 --- a/frontend/pweb/lib/pages/payment_methods/payment_page/method_selector.dart +++ b/frontend/pweb/lib/pages/payment_methods/payment_page/method_selector.dart @@ -2,8 +2,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:pweb/models/wallet.dart'; -import 'package:pweb/providers/wallets.dart'; +import 'package:pshared/models/payment/wallet.dart'; +import 'package:pshared/provider/payment/wallets.dart'; import 'package:pweb/utils/payment/dropdown.dart'; diff --git a/frontend/pweb/lib/pages/payout_page/page.dart b/frontend/pweb/lib/pages/payout_page/page.dart index 8095368..45262ad 100644 --- a/frontend/pweb/lib/pages/payout_page/page.dart +++ b/frontend/pweb/lib/pages/payout_page/page.dart @@ -4,7 +4,7 @@ import 'package:provider/provider.dart'; import 'package:pshared/provider/recipient/pmethods.dart'; -import 'package:pweb/models/wallet.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 2599965..b4c0579 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/card.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/card.dart @@ -4,9 +4,9 @@ import 'package:provider/provider.dart'; import 'package:pshared/utils/currency.dart'; -import 'package:pweb/models/wallet.dart'; +import 'package:pshared/models/payment/wallet.dart'; import 'package:pweb/pages/dashboard/buttons/balance/amount.dart'; -import 'package:pweb/providers/wallets.dart'; +import 'package:pshared/provider/payment/wallets.dart'; import 'package:pweb/generated/i18n/app_localizations.dart'; diff --git a/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/buttons.dart b/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/buttons.dart index 983aafe..4280a9b 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/buttons.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/buttons.dart @@ -4,7 +4,7 @@ import 'package:provider/provider.dart'; import 'package:pweb/pages/payout_page/wallet/edit/buttons/send.dart'; import 'package:pweb/pages/payout_page/wallet/edit/buttons/top_up.dart'; -import 'package:pweb/providers/wallets.dart'; +import 'package:pshared/provider/payment/wallets.dart'; class ButtonsWalletWidget extends StatelessWidget { diff --git a/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/save.dart b/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/save.dart index 0529585..48eaedb 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/save.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/save.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:pweb/models/wallet.dart'; +import 'package:pshared/models/payment/wallet.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/edit/buttons/send.dart b/frontend/pweb/lib/pages/payout_page/wallet/edit/buttons/send.dart index 118494a..dd09197 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 @@ -5,7 +5,7 @@ import 'package:provider/provider.dart'; import 'package:pshared/models/payment/type.dart'; import 'package:pweb/app/router/payout_routes.dart'; -import 'package:pweb/providers/wallets.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 317f96a..cb467c5 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 @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:pweb/app/router/payout_routes.dart'; -import 'package:pweb/providers/wallets.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/fields.dart b/frontend/pweb/lib/pages/payout_page/wallet/edit/fields.dart index ca28e90..761d94d 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/edit/fields.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/edit/fields.dart @@ -4,7 +4,7 @@ import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; import 'package:pweb/pages/dashboard/buttons/balance/amount.dart'; -import 'package:pweb/providers/wallets.dart'; +import 'package:pshared/provider/payment/wallets.dart'; class WalletEditFields extends StatelessWidget { diff --git a/frontend/pweb/lib/pages/payout_page/wallet/edit/header.dart b/frontend/pweb/lib/pages/payout_page/wallet/edit/header.dart index 6368d2a..df0452b 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/edit/header.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/edit/header.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:pweb/providers/wallets.dart'; +import 'package:pshared/provider/payment/wallets.dart'; import 'package:pweb/generated/i18n/app_localizations.dart'; 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 e95431c..6bf39ec 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/edit/page.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/edit/page.dart @@ -6,7 +6,7 @@ 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:pweb/providers/wallets.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 b6117d3..b6e687a 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/history/history.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/history/history.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:pweb/models/wallet.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 4df69a9..cb1edf0 100644 --- a/frontend/pweb/lib/pages/payout_page/wallet/wigets.dart +++ b/frontend/pweb/lib/pages/payout_page/wallet/wigets.dart @@ -2,13 +2,13 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:pweb/models/wallet.dart'; +import 'package:pshared/models/payment/wallet.dart'; import 'package:pweb/pages/payout_page/wallet/card.dart'; -import 'package:pweb/providers/wallets.dart'; +import 'package:pshared/provider/payment/wallets.dart'; class WalletWidgets extends StatelessWidget { - final Function(Wallet) onWalletTap; + final void Function(Wallet) onWalletTap; const WalletWidgets({super.key, required this.onWalletTap}); @@ -34,9 +34,7 @@ class WalletWidgets extends StatelessWidget { padding: const EdgeInsets.symmetric(vertical: 6.0), child: WalletCard( wallet: wallet, - onTap: () { - onWalletTap(wallet); - }, + onTap: () => onWalletTap(wallet), ), ); }, diff --git a/frontend/pweb/lib/pages/wallet_top_up/content.dart b/frontend/pweb/lib/pages/wallet_top_up/content.dart index d5bd237..9fa9ced 100644 --- a/frontend/pweb/lib/pages/wallet_top_up/content.dart +++ b/frontend/pweb/lib/pages/wallet_top_up/content.dart @@ -4,7 +4,7 @@ import 'package:pshared/models/payment/chain_network.dart'; import 'package:pshared/utils/currency.dart'; import 'package:pshared/utils/l10n/chain.dart'; -import 'package:pweb/models/wallet.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 6cabada..e5ab050 100644 --- a/frontend/pweb/lib/pages/wallet_top_up/page.dart +++ b/frontend/pweb/lib/pages/wallet_top_up/page.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:pweb/pages/wallet_top_up/content.dart'; -import 'package:pweb/providers/wallets.dart'; +import 'package:pshared/provider/payment/wallets.dart'; import 'package:pweb/generated/i18n/app_localizations.dart'; diff --git a/frontend/pweb/lib/utils/payment/dropdown.dart b/frontend/pweb/lib/utils/payment/dropdown.dart index 77c5e02..25a132b 100644 --- a/frontend/pweb/lib/utils/payment/dropdown.dart +++ b/frontend/pweb/lib/utils/payment/dropdown.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:pshared/models/payment/type.dart'; +import 'package:pshared/models/payment/wallet.dart'; -import 'package:pweb/models/wallet.dart'; import 'package:pweb/pages/payment_methods/icon.dart'; import 'package:pweb/generated/i18n/app_localizations.dart'; @@ -34,32 +34,28 @@ class _PaymentMethodDropdownState extends State { } @override - Widget build(BuildContext context) { - return DropdownButtonFormField( - dropdownColor: Theme.of(context).colorScheme.onSecondary, - initialValue: _selectedMethod, - decoration: InputDecoration( - labelText: AppLocalizations.of(context)!.whereGetMoney, - border: OutlineInputBorder(borderRadius: BorderRadius.circular(8)), + Widget build(BuildContext context) => DropdownButtonFormField( + dropdownColor: Theme.of(context).colorScheme.onSecondary, + initialValue: _selectedMethod, + decoration: InputDecoration( + labelText: AppLocalizations.of(context)!.whereGetMoney, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(8)), + ), + items: widget.methods.map((method) => DropdownMenuItem( + value: method, + child: Row( + children: [ + Icon(iconForPaymentType(PaymentType.managedWallet), size: 20), + const SizedBox(width: 8), + Text(method.name), + ], ), - items: widget.methods.map((method) { - return DropdownMenuItem( - value: method, - child: Row( - children: [ - Icon(iconForPaymentType(PaymentType.managedWallet), size: 20), - const SizedBox(width: 8), - Text(method.name), - ], - ), - ); - }).toList(), - onChanged: (value) { - if (value != null) { - setState(() => _selectedMethod = value); - widget.onChanged(value); - } - }, - ); - } + )).toList(), + onChanged: (value) { + if (value != null) { + setState(() => _selectedMethod = value); + widget.onChanged(value); + } + }, + ); } \ No newline at end of file