From 75f3678b90c8a639d10cdbfc8f31ba351015675b Mon Sep 17 00:00:00 2001 From: Arseni Date: Wed, 4 Mar 2026 15:34:16 +0300 Subject: [PATCH] removed payments polling --- .../lib/provider/payment/payments.dart | 66 ++++--------------- .../pshared/lib/provider/payment/updates.dart | 4 +- 2 files changed, 15 insertions(+), 55 deletions(-) diff --git a/frontend/pshared/lib/provider/payment/payments.dart b/frontend/pshared/lib/provider/payment/payments.dart index 7bcc44e9..f78e2209 100644 --- a/frontend/pshared/lib/provider/payment/payments.dart +++ b/frontend/pshared/lib/provider/payment/payments.dart @@ -9,8 +9,6 @@ import 'package:pshared/service/payment/service.dart'; import 'package:pshared/utils/exception.dart'; class PaymentsProvider with ChangeNotifier { - static const Duration _pendingRefreshInterval = Duration(seconds: 10); - OrganizationsProvider? _organizations; String? _loadedOrganizationRef; @@ -25,8 +23,6 @@ class PaymentsProvider with ChangeNotifier { List? _states; int _opSeq = 0; - Timer? _pendingRefreshTimer; - bool _isPendingRefreshInFlight = false; Resource> get resource => _resource; List get payments => _resource.data ?? []; @@ -89,6 +85,18 @@ class PaymentsProvider with ChangeNotifier { ); } + Future refreshCurrentQuerySilently() async { + await _refresh( + limit: _limit, + quotationRef: _quotationRef, + createdFrom: _createdFrom, + createdTo: _createdTo, + states: _states, + showLoading: false, + updateError: false, + ); + } + void mergePayments(List incoming) { if (incoming.isEmpty) return; final existing = List.from(_resource.data ?? const []); @@ -228,7 +236,6 @@ class PaymentsProvider with ChangeNotifier { _createdTo = null; _states = null; _resource = Resource(data: []); - _stopPendingRefreshTimer(); notifyListeners(); } @@ -237,7 +244,6 @@ class PaymentsProvider with ChangeNotifier { required bool notify, }) { _resource = newResource; - _syncPendingRefresh(); if (notify) notifyListeners(); } @@ -262,52 +268,4 @@ class PaymentsProvider with ChangeNotifier { if (normalized.isEmpty) return null; return normalized; } - - void _syncPendingRefresh() { - final hasPending = payments.any((payment) => payment.isPending); - if (!hasPending) { - _stopPendingRefreshTimer(); - return; - } - _ensurePendingRefreshTimer(); - } - - void _ensurePendingRefreshTimer() { - if (_pendingRefreshTimer != null) return; - _pendingRefreshTimer = Timer.periodic( - _pendingRefreshInterval, - (_) => _refreshPending(), - ); - _refreshPending(); - } - - Future _refreshPending() async { - if (_isPendingRefreshInFlight) return; - if (isLoading || isLoadingMore) return; - - _isPendingRefreshInFlight = true; - try { - await refreshSilently( - limit: _limit, - quotationRef: _quotationRef, - createdFrom: _createdFrom, - createdTo: _createdTo, - states: _states, - ); - } finally { - _isPendingRefreshInFlight = false; - } - } - - void _stopPendingRefreshTimer() { - _pendingRefreshTimer?.cancel(); - _pendingRefreshTimer = null; - _isPendingRefreshInFlight = false; - } - - @override - void dispose() { - _stopPendingRefreshTimer(); - super.dispose(); - } } diff --git a/frontend/pshared/lib/provider/payment/updates.dart b/frontend/pshared/lib/provider/payment/updates.dart index d98cf46b..dbaaad38 100644 --- a/frontend/pshared/lib/provider/payment/updates.dart +++ b/frontend/pshared/lib/provider/payment/updates.dart @@ -1,3 +1,5 @@ +import 'dart:async'; + import 'package:flutter/foundation.dart'; import 'package:pshared/models/payment/payment.dart'; @@ -5,7 +7,6 @@ import 'package:pshared/provider/payment/multiple/provider.dart'; import 'package:pshared/provider/payment/payments.dart'; import 'package:pshared/provider/payment/provider.dart'; - class PaymentsUpdatesProvider extends ChangeNotifier { PaymentsProvider? _payments; PaymentProvider? _paymentProvider; @@ -66,6 +67,7 @@ class PaymentsUpdatesProvider extends ChangeNotifier { void _merge(List incoming) { if (incoming.isEmpty) return; _payments?.mergePayments(incoming); + unawaited(_payments?.refreshCurrentQuerySilently()); for (final payment in incoming) { final key = _key(payment); if (key != null) {