added ledger as souec of funds for payouts
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:pshared/controllers/balance_mask/wallets.dart';
|
||||
import 'package:pshared/controllers/payment/source.dart';
|
||||
import 'package:pshared/models/payment/settlement_mode.dart';
|
||||
import 'package:pshared/provider/payment/amount.dart';
|
||||
import 'package:pshared/utils/currency.dart';
|
||||
@@ -15,7 +15,7 @@ class PaymentAmountFieldController extends ChangeNotifier {
|
||||
final FocusNode focusNode = FocusNode();
|
||||
|
||||
PaymentAmountProvider? _provider;
|
||||
WalletsController? _wallets;
|
||||
PaymentSourceController? _source;
|
||||
bool _isSyncingText = false;
|
||||
PaymentAmountMode _mode = PaymentAmountMode.debit;
|
||||
|
||||
@@ -36,7 +36,7 @@ class PaymentAmountFieldController extends ChangeNotifier {
|
||||
PaymentAmountMode.settlement => _settlementCurrencyCode,
|
||||
};
|
||||
|
||||
void update(PaymentAmountProvider provider, WalletsController wallets) {
|
||||
void update(PaymentAmountProvider provider, PaymentSourceController source) {
|
||||
if (!identical(_provider, provider)) {
|
||||
_provider?.removeListener(_handleProviderChanged);
|
||||
_provider = provider;
|
||||
@@ -44,11 +44,11 @@ class PaymentAmountFieldController extends ChangeNotifier {
|
||||
_syncModeWithProvider(provider);
|
||||
}
|
||||
|
||||
if (!identical(_wallets, wallets)) {
|
||||
_wallets?.removeListener(_handleWalletsChanged);
|
||||
_wallets = wallets;
|
||||
_wallets?.addListener(_handleWalletsChanged);
|
||||
_normalizeModeForWallet();
|
||||
if (!identical(_source, source)) {
|
||||
_source?.removeListener(_handleSourceChanged);
|
||||
_source = source;
|
||||
_source?.addListener(_handleSourceChanged);
|
||||
_normalizeModeForSource();
|
||||
}
|
||||
|
||||
_syncTextWithAmount(provider.amount);
|
||||
@@ -79,16 +79,14 @@ class PaymentAmountFieldController extends ChangeNotifier {
|
||||
_syncTextWithAmount(provider.amount);
|
||||
final changed = _syncModeWithProvider(provider);
|
||||
if (changed) {
|
||||
_normalizeModeForWallet();
|
||||
_normalizeModeForSource();
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
void _handleWalletsChanged() {
|
||||
final changed = _normalizeModeForWallet();
|
||||
if (changed) {
|
||||
notifyListeners();
|
||||
}
|
||||
void _handleSourceChanged() {
|
||||
_normalizeModeForSource();
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
bool _syncModeWithProvider(PaymentAmountProvider provider) {
|
||||
@@ -98,7 +96,7 @@ class PaymentAmountFieldController extends ChangeNotifier {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool _normalizeModeForWallet() {
|
||||
bool _normalizeModeForSource() {
|
||||
if (isReverseModeAvailable || _mode != PaymentAmountMode.settlement) {
|
||||
return false;
|
||||
}
|
||||
@@ -108,9 +106,7 @@ class PaymentAmountFieldController extends ChangeNotifier {
|
||||
}
|
||||
|
||||
String? get _sourceCurrencyCode {
|
||||
final selectedWallet = _wallets?.selectedWallet;
|
||||
if (selectedWallet == null) return null;
|
||||
return currencyCodeToString(selectedWallet.currency);
|
||||
return _source?.selectedCurrencyCode;
|
||||
}
|
||||
|
||||
PaymentAmountMode _modeFromSettlementMode(SettlementMode mode) =>
|
||||
@@ -150,7 +146,7 @@ class PaymentAmountFieldController extends ChangeNotifier {
|
||||
@override
|
||||
void dispose() {
|
||||
_provider?.removeListener(_handleProviderChanged);
|
||||
_wallets?.removeListener(_handleWalletsChanged);
|
||||
_source?.removeListener(_handleSourceChanged);
|
||||
focusNode.dispose();
|
||||
textController.dispose();
|
||||
super.dispose();
|
||||
|
||||
Reference in New Issue
Block a user