ledger top up functionality and few small fixes for project architechture and design
This commit is contained in:
@@ -1,9 +1,13 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:go_router/go_router.dart';
|
||||
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:pshared/controllers/payment/source.dart';
|
||||
import 'package:pshared/models/payment/source_type.dart';
|
||||
import 'package:pshared/models/payment/type.dart';
|
||||
import 'package:pshared/provider/recipient/provider.dart';
|
||||
|
||||
import 'package:pweb/app/router/payout_routes.dart';
|
||||
|
||||
@@ -17,11 +21,35 @@ class TopUpButton extends StatelessWidget {
|
||||
Widget build(BuildContext context) {
|
||||
final loc = AppLocalizations.of(context)!;
|
||||
final source = context.watch<PaymentSourceController>();
|
||||
final canTopUp = source.selectedType == PaymentSourceType.wallet;
|
||||
final selectedType = source.selectedType;
|
||||
final selectedLedger = source.selectedLedgerAccount;
|
||||
final canTopUp =
|
||||
selectedType == PaymentSourceType.wallet ||
|
||||
(selectedType == PaymentSourceType.ledger && selectedLedger != null);
|
||||
|
||||
return ElevatedButton(
|
||||
style: ElevatedButton.styleFrom(shadowColor: null, elevation: 0),
|
||||
onPressed: canTopUp ? () => context.pushToWalletTopUp() : null,
|
||||
onPressed: !canTopUp
|
||||
? null
|
||||
: () {
|
||||
if (selectedType == PaymentSourceType.wallet) {
|
||||
context.pushToWalletTopUp();
|
||||
return;
|
||||
}
|
||||
|
||||
if (selectedType == PaymentSourceType.ledger &&
|
||||
selectedLedger != null) {
|
||||
context.read<RecipientsProvider>().setCurrentObject(null);
|
||||
context.pushNamed(
|
||||
PayoutRoutes.payment,
|
||||
queryParameters: PayoutRoutes.buildQueryParameters(
|
||||
paymentType: PaymentType.ledger,
|
||||
destinationLedgerAccountRef:
|
||||
selectedLedger.ledgerAccountRef,
|
||||
),
|
||||
);
|
||||
}
|
||||
},
|
||||
child: Text(loc.topUpBalance),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user