migration to address book service
This commit is contained in:
@@ -2,16 +2,12 @@ import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:pshared/models/payment/methods/card.dart';
|
||||
import 'package:pshared/models/payment/methods/crypto_address.dart';
|
||||
import 'package:pshared/models/payment/methods/iban.dart';
|
||||
import 'package:pshared/models/payment/methods/russian_bank.dart';
|
||||
import 'package:pshared/models/payment/methods/wallet.dart';
|
||||
import 'package:pshared/models/payment/type.dart';
|
||||
import 'package:pshared/models/recipient/recipient.dart';
|
||||
import 'package:pshared/models/recipient/status.dart';
|
||||
import 'package:pshared/models/recipient/type.dart';
|
||||
import 'package:pshared/provider/organizations.dart';
|
||||
import 'package:pshared/provider/recipient/pmethods.dart';
|
||||
|
||||
import 'package:pweb/pages/address_book/form/view.dart';
|
||||
import 'package:pweb/services/amplitude.dart';
|
||||
@@ -36,6 +32,25 @@ class _AdressBookRecipientFormState extends State<AdressBookRecipientForm> {
|
||||
RecipientType _type = RecipientType.internal;
|
||||
RecipientStatus _status = RecipientStatus.ready;
|
||||
final Map<PaymentType, Object?> _methods = {};
|
||||
late PaymentMethodsProvider _methodsProvider;
|
||||
|
||||
Future<void> _loadMethods() async {
|
||||
_methodsProvider = PaymentMethodsProvider()..addListener(_onProviderChanged);
|
||||
await _methodsProvider.loadMethods(
|
||||
context.read<OrganizationsProvider>(),
|
||||
widget.recipient?.id,
|
||||
);
|
||||
|
||||
for (final m in _methodsProvider.methods) {
|
||||
_methods[m.type] = switch (m.type) {
|
||||
PaymentType.card => m.cardData,
|
||||
PaymentType.iban => m.ibanData,
|
||||
PaymentType.wallet => m.walletData,
|
||||
PaymentType.bankAccount => m.bankAccountData,
|
||||
PaymentType.cryptoAddress => m.cryptoAddressData,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -45,12 +60,7 @@ class _AdressBookRecipientFormState extends State<AdressBookRecipientForm> {
|
||||
_emailCtrl = TextEditingController(text: r?.email ?? '');
|
||||
_type = r?.type ?? RecipientType.internal;
|
||||
_status = r?.status ?? RecipientStatus.ready;
|
||||
|
||||
if (r?.card != null) _methods[PaymentType.card] = r!.card;
|
||||
if (r?.iban != null) _methods[PaymentType.iban] = r!.iban;
|
||||
if (r?.wallet != null) _methods[PaymentType.wallet] = r!.wallet;
|
||||
if (r?.bank != null) _methods[PaymentType.bankAccount] = r!.bank;
|
||||
if (r?.cryptoAddress != null) _methods[PaymentType.cryptoAddress] = r!.cryptoAddress;
|
||||
_loadMethods();
|
||||
}
|
||||
|
||||
//TODO: Change when registration is ready
|
||||
@@ -81,6 +91,15 @@ class _AdressBookRecipientFormState extends State<AdressBookRecipientForm> {
|
||||
widget.onSaved?.call(recipient);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_methodsProvider.removeListener(_onProviderChanged);
|
||||
_methodsProvider.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void _onProviderChanged() => setState(() {});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) => FormView(
|
||||
formKey: _formKey,
|
||||
|
||||
Reference in New Issue
Block a user