hotfix for payment page to see more then one payment type
This commit is contained in:
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:pshared/models/payment/methods/data.dart';
|
||||
import 'package:pshared/models/payment/methods/type.dart';
|
||||
import 'package:pshared/provider/payment/flow.dart';
|
||||
|
||||
import 'package:pweb/pages/payment_methods/form.dart';
|
||||
@@ -10,10 +11,11 @@ import 'package:pweb/pages/payment_methods/widgets/section_title.dart';
|
||||
import 'package:pweb/utils/dimensions.dart';
|
||||
import 'package:pweb/utils/payment/availability.dart';
|
||||
import 'package:pweb/utils/payment/selector_type.dart';
|
||||
import 'package:pweb/utils/payment/label.dart';
|
||||
|
||||
import 'package:pweb/generated/i18n/app_localizations.dart';
|
||||
|
||||
|
||||
//TODO Whole page sucks. Will redesign.
|
||||
class PaymentInfoSection extends StatelessWidget {
|
||||
final AppDimensions dimensions;
|
||||
|
||||
@@ -31,6 +33,9 @@ class PaymentInfoSection extends StatelessWidget {
|
||||
final disabledTypesForSelection = hasRecipient
|
||||
? disabledPaymentTypes.difference(resolvedAvailableTypes.keys.toSet())
|
||||
: disabledPaymentTypes;
|
||||
final methodsForSelectedType = flowProvider.methodsForSelectedType;
|
||||
final selectedMethod = flowProvider.selectedMethod ??
|
||||
(methodsForSelectedType.isNotEmpty ? methodsForSelectedType.first : null);
|
||||
|
||||
if (hasRecipient && resolvedAvailableTypes.isEmpty) {
|
||||
return Text(loc.recipientNoPaymentDetails);
|
||||
@@ -53,6 +58,30 @@ class PaymentInfoSection extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
SizedBox(height: dimensions.paddingMedium),
|
||||
if (hasRecipient && methodsForSelectedType.length > 1)
|
||||
DropdownButtonFormField<PaymentMethod>(
|
||||
value: selectedMethod,
|
||||
dropdownColor: Theme.of(context).colorScheme.onSecondary,
|
||||
decoration: InputDecoration(
|
||||
labelText: loc.paymentMethodDetails,
|
||||
border: OutlineInputBorder(borderRadius: BorderRadius.circular(8)),
|
||||
),
|
||||
items: methodsForSelectedType.map((method) {
|
||||
final description = getPaymentTypeDescription(context, method);
|
||||
final label = method.name.isNotEmpty ? '${method.name} - $description' : description;
|
||||
return DropdownMenuItem(
|
||||
value: method,
|
||||
child: Text(label),
|
||||
);
|
||||
}).toList(),
|
||||
onChanged: (value) {
|
||||
if (value != null) {
|
||||
flowProvider.selectMethod(value);
|
||||
}
|
||||
},
|
||||
),
|
||||
if (hasRecipient && methodsForSelectedType.length > 1)
|
||||
SizedBox(height: dimensions.paddingMedium),
|
||||
PaymentMethodForm(
|
||||
selectedType: selectedType,
|
||||
onChanged: (data) {
|
||||
|
||||
Reference in New Issue
Block a user