Frontend first draft
This commit is contained in:
55
frontend/pweb/lib/pages/payment_methods/form.dart
Normal file
55
frontend/pweb/lib/pages/payment_methods/form.dart
Normal file
@@ -0,0 +1,55 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:pshared/models/payment/methods/card.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:pweb/pages/payment_methods/add/card.dart';
|
||||
import 'package:pweb/pages/payment_methods/add/iban.dart';
|
||||
import 'package:pweb/pages/payment_methods/add/russian_bank.dart';
|
||||
import 'package:pweb/pages/payment_methods/add/wallet.dart';
|
||||
|
||||
|
||||
class PaymentMethodForm extends StatelessWidget {
|
||||
final PaymentType? selectedType;
|
||||
final ValueChanged<Object?> onChanged;
|
||||
final Object? initialData;
|
||||
final bool isEditable;
|
||||
|
||||
const PaymentMethodForm({
|
||||
super.key,
|
||||
required this.selectedType,
|
||||
required this.onChanged,
|
||||
this.initialData,
|
||||
this.isEditable = true,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return switch (selectedType) {
|
||||
PaymentType.card => CardFormMinimal(
|
||||
onChanged: onChanged,
|
||||
initialData: initialData as CardPaymentMethod?,
|
||||
isEditable: isEditable,
|
||||
),
|
||||
PaymentType.iban => IbanForm(
|
||||
onChanged: onChanged,
|
||||
initialData: initialData as IbanPaymentMethod?,
|
||||
isEditable: isEditable,
|
||||
),
|
||||
PaymentType.wallet => WalletForm(
|
||||
onChanged: onChanged,
|
||||
initialData: initialData as WalletPaymentMethod?,
|
||||
isEditable: isEditable,
|
||||
),
|
||||
PaymentType.bankAccount => RussianBankForm(
|
||||
onChanged: onChanged,
|
||||
initialData: initialData as RussianBankAccountPaymentMethod?,
|
||||
isEditable: isEditable,
|
||||
),
|
||||
_ => const SizedBox.shrink(),
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user