import 'package:flutter/foundation.dart'; import 'package:pshared/models/payment/source.dart'; import 'package:pshared/provider/ledger.dart'; import 'package:pshared/provider/payment/wallets.dart'; class PaymentSourceProvider extends ChangeNotifier { List _sources = const []; List get sources => _sources; void update( WalletsProvider walletsProvider, LedgerAccountsProvider ledgerProvider, ) { final nextSources = [ ...walletsProvider.wallets.map(PaymentSource.wallet), ...ledgerProvider.accounts.map(PaymentSource.ledger), ]; final currentKeys = _sources .map((source) => source.key) .toList(growable: false); final nextKeys = nextSources .map((source) => source.key) .toList(growable: false); if (listEquals(currentKeys, nextKeys)) return; _sources = nextSources; notifyListeners(); } }