From 7498ab880dc761d827201fe8bc2c4864b96674ef Mon Sep 17 00:00:00 2001 From: Arseni Date: Tue, 13 Jan 2026 16:04:38 +0300 Subject: [PATCH] Moved the payment flow providers from the global level into the payout shell --- .../pweb/lib/app/router/payout_shell.dart | 38 ++++++++++++++++++- frontend/pweb/lib/main.dart | 38 +++---------------- 2 files changed, 42 insertions(+), 34 deletions(-) diff --git a/frontend/pweb/lib/app/router/payout_shell.dart b/frontend/pweb/lib/app/router/payout_shell.dart index 7662df4..8a5558a 100644 --- a/frontend/pweb/lib/app/router/payout_shell.dart +++ b/frontend/pweb/lib/app/router/payout_shell.dart @@ -6,7 +6,13 @@ import 'package:provider/provider.dart'; import 'package:pshared/models/payment/type.dart'; import 'package:pshared/models/recipient/recipient.dart'; +import 'package:pshared/provider/organizations.dart'; +import 'package:pshared/provider/payment/amount.dart'; +import 'package:pshared/provider/payment/flow.dart'; +import 'package:pshared/provider/payment/provider.dart'; +import 'package:pshared/provider/payment/quotation.dart'; import 'package:pshared/provider/recipient/provider.dart'; +import 'package:pshared/provider/recipient/pmethods.dart'; import 'package:pweb/app/router/pages.dart'; import 'package:pweb/app/router/payout_routes.dart'; @@ -29,10 +35,40 @@ import 'package:pweb/generated/i18n/app_localizations.dart'; RouteBase payoutShellRoute() => ShellRoute( - builder: (context, state, child) => PageSelector( + builder: (context, state, child) => MultiProvider( + providers: [ + ChangeNotifierProxyProvider2( + create: (_) => PaymentMethodsProvider(), + update: (context, organizations, recipients, provider) => provider!..updateProviders(organizations, recipients), + ), + ChangeNotifierProxyProvider2( + create: (_) => PaymentFlowProvider(initialType: PaymentType.bankAccount), + update: (context, recipients, methods, provider) => provider!..update( + recipients, + methods, + ), + ), + ChangeNotifierProvider( + create: (_) => PaymentAmountProvider(), + ), + ChangeNotifierProxyProvider6( + create: (_) => QuotationProvider(), + update: (_, organization, payment, wallet, flow, recipients, methods, provider) => + provider!..update(organization, payment, wallet, flow, recipients, methods), + ), + ChangeNotifierProxyProvider2( + create: (_) => PaymentProvider(), + update: (context, organization, quotation, provider) => provider!..update( + organization, + quotation, + ), + ), + ], + child: PageSelector( child: child, routerState: state, ), + ), routes: [ GoRoute( name: PayoutRoutes.dashboard, diff --git a/frontend/pweb/lib/main.dart b/frontend/pweb/lib/main.dart index c313c4d..49d94ce 100644 --- a/frontend/pweb/lib/main.dart +++ b/frontend/pweb/lib/main.dart @@ -12,14 +12,9 @@ import 'package:pshared/provider/locale.dart'; 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/flow.dart'; -import 'package:pshared/provider/payment/provider.dart'; -import 'package:pshared/provider/payment/quotation.dart'; +import 'package:pshared/provider/accounts/employees.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/models/payment/type.dart'; import 'package:pshared/service/payment/wallets.dart'; import 'package:pweb/app/app.dart'; @@ -72,6 +67,10 @@ void main() async { create: (_) => PermissionsProvider(), update: (context, orgnization, provider) => provider!..update(orgnization), ), + ChangeNotifierProxyProvider( + create: (_) => EmployeesProvider(), + update: (context, organizations, provider) => provider!..updateProviders(organizations), + ), ChangeNotifierProvider(create: (_) => CarouselIndexProvider()), ChangeNotifierProvider( @@ -81,10 +80,6 @@ void main() async { create: (_) => RecipientsProvider(), update: (context, organizations, provider) => provider!..updateProviders(organizations), ), - ChangeNotifierProxyProvider2( - create: (_) => PaymentMethodsProvider(), - update: (context, organizations, recipients, provider) => provider!..updateProviders(organizations, recipients), - ), ChangeNotifierProxyProvider( create: (_) => WalletsProvider(ApiWalletsService()), update: (context, organizations, provider) => provider!..update(organizations), @@ -92,32 +87,9 @@ void main() async { ChangeNotifierProvider( create: (_) => WalletTransactionsProvider(MockWalletTransactionsService())..load(), ), - ChangeNotifierProxyProvider2( - create: (_) => PaymentFlowProvider(initialType: PaymentType.bankAccount), - update: (context, recipients, methods, provider) => provider!..update( - recipients, - methods, - ), - ), - ChangeNotifierProvider( create: (_) => OperationProvider(OperationService())..loadOperations(), ), - ChangeNotifierProvider( - create: (_) => PaymentAmountProvider(), - ), - ChangeNotifierProxyProvider6( - create: (_) => QuotationProvider(), - update: (_, organization, payment, wallet, flow, recipients, methods, provider) => - provider!..update(organization, payment, wallet, flow, recipients, methods), - ), - ChangeNotifierProxyProvider2( - create: (_) => PaymentProvider(), - update: (context, organization, quotation, provider) => provider!..update( - organization, - quotation, - ), - ), ], child: const PayApp(), ),