This commit is contained in:
Arseni
2026-03-04 17:43:18 +03:00
parent 80b25a8608
commit aff804ec58
46 changed files with 1090 additions and 345 deletions

View File

@@ -1,6 +1,6 @@
import 'package:flutter/foundation.dart';
import 'package:pshared/controllers/balance_mask/wallets.dart';
import 'package:pshared/controllers/payment/source.dart';
import 'package:pshared/models/money.dart';
import 'package:pshared/models/payment/payment.dart';
import 'package:pshared/models/payment/quote/status_type.dart';
@@ -15,15 +15,17 @@ import 'package:pweb/services/payments/csv_input.dart';
class MultiplePayoutsController extends ChangeNotifier {
final CsvInputService _csvInput;
MultiplePayoutsProvider? _provider;
WalletsController? _wallets;
PaymentSourceController? _sourceController;
_PickState _pickState = _PickState.idle;
Exception? _uiError;
MultiplePayoutsController({
required CsvInputService csvInput,
}) : _csvInput = csvInput;
MultiplePayoutsController({required CsvInputService csvInput})
: _csvInput = csvInput;
void update(MultiplePayoutsProvider provider, WalletsController wallets) {
void update(
MultiplePayoutsProvider provider,
PaymentSourceController sourceController,
) {
var shouldNotify = false;
if (!identical(_provider, provider)) {
_provider?.removeListener(_onProviderChanged);
@@ -31,10 +33,10 @@ class MultiplePayoutsController extends ChangeNotifier {
_provider?.addListener(_onProviderChanged);
shouldNotify = true;
}
if (!identical(_wallets, wallets)) {
_wallets?.removeListener(_onWalletsChanged);
_wallets = wallets;
_wallets?.addListener(_onWalletsChanged);
if (!identical(_sourceController, sourceController)) {
_sourceController?.removeListener(_onSourceChanged);
_sourceController = sourceController;
_sourceController?.addListener(_onSourceChanged);
shouldNotify = true;
}
if (shouldNotify) {
@@ -58,7 +60,7 @@ class MultiplePayoutsController extends ChangeNotifier {
_provider?.quoteStatusType ?? QuoteStatusType.missing;
Duration? get quoteTimeLeft => _provider?.quoteTimeLeft;
bool get canSend => _provider?.canSend ?? false;
bool get canSend => (_provider?.canSend ?? false) && _selectedWallet != null;
Money? get aggregateDebitAmount =>
_provider?.aggregateDebitAmountFor(_selectedWallet);
Money? get requestedSentAmount => _provider?.requestedSentAmount;
@@ -128,11 +130,11 @@ class MultiplePayoutsController extends ChangeNotifier {
notifyListeners();
}
void _onWalletsChanged() {
void _onSourceChanged() {
notifyListeners();
}
Wallet? get _selectedWallet => _wallets?.selectedWallet;
Wallet? get _selectedWallet => _sourceController?.selectedWallet;
void _setUiError(Object error) {
_uiError = error is Exception ? error : Exception(error.toString());
@@ -150,7 +152,7 @@ class MultiplePayoutsController extends ChangeNotifier {
@override
void dispose() {
_provider?.removeListener(_onProviderChanged);
_wallets?.removeListener(_onWalletsChanged);
_sourceController?.removeListener(_onSourceChanged);
super.dispose();
}
}