diff --git a/client_app/lib/features/payment/state/payment_catalog_provider.dart b/client_app/lib/features/payment/state/payment_catalog_provider.dart index 06db942..701c378 100644 --- a/client_app/lib/features/payment/state/payment_catalog_provider.dart +++ b/client_app/lib/features/payment/state/payment_catalog_provider.dart @@ -106,7 +106,15 @@ const PaymentCatalog kFallbackPaymentCatalog = _FallbackCatalog(); /// App-facing catalog. Calls `GET /api/client/payment-methods`; on 5xx or /// network error returns [kFallbackPaymentCatalog] so checkout never /// hard-fails. See `requirement/phase5-payment-catalog-plan.md` ยง5. -final paymentCatalogProvider = FutureProvider((ref) async { +/// +/// `autoDispose`: a plain FutureProvider caches its result for the whole app +/// session, so control-center edits to payment methods (enable/disable/create) +/// only showed up after an app restart. autoDispose drops the cached catalog +/// once the payment screen is popped (no listeners), so re-opening the payment +/// page re-fetches the now-current catalog from the backend (whose own cache is +/// invalidated on every mutation). +final paymentCatalogProvider = + FutureProvider.autoDispose((ref) async { final api = ref.read(apiClientProvider); try { final res = await api.get('/api/client/payment-methods');