removed payments polling

This commit is contained in:
Arseni
2026-03-04 15:34:16 +03:00
parent 4fa641f971
commit 75f3678b90
2 changed files with 15 additions and 55 deletions

View File

@@ -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<String>? _states;
int _opSeq = 0;
Timer? _pendingRefreshTimer;
bool _isPendingRefreshInFlight = false;
Resource<List<Payment>> get resource => _resource;
List<Payment> get payments => _resource.data ?? [];
@@ -89,6 +85,18 @@ class PaymentsProvider with ChangeNotifier {
);
}
Future<void> refreshCurrentQuerySilently() async {
await _refresh(
limit: _limit,
quotationRef: _quotationRef,
createdFrom: _createdFrom,
createdTo: _createdTo,
states: _states,
showLoading: false,
updateError: false,
);
}
void mergePayments(List<Payment> incoming) {
if (incoming.isEmpty) return;
final existing = List<Payment>.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<void> _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();
}
}