redesigned payment page + a lot of fixes

This commit is contained in:
Arseni
2026-02-21 21:55:20 +03:00
parent a68aa2abff
commit 0c6fa03aba
208 changed files with 4062 additions and 2217 deletions

View File

@@ -25,21 +25,34 @@ String getPaymentTypeLabel(BuildContext context, PaymentType type) {
};
}
String? _displayString(PaymentMethod m) => switch (m.type) {
String? getPaymentMethodMaskedValue(PaymentMethod m) => switch (m.type) {
PaymentType.card => maskCardNumber(m.cardData?.pan),
PaymentType.cardToken => m.dataAsOrNull<CardTokenPaymentMethod>()?.maskedPan,
PaymentType.bankAccount => maskAccountEdge(m.bankAccountData?.accountNumber),
PaymentType.iban => maskAccountEdge(m.ibanData?.iban),
PaymentType.wallet => maskAccountEdge(m.walletData?.walletId),
PaymentType.managedWallet => () {
final data = m.dataAsOrNull<ManagedWalletPaymentMethod>();
if (data == null) return null;
return data.asset?.tokenSymbol ?? maskAccountEdge(data.managedWalletRef);
}(),
PaymentType.externalChain => maskAccountEdge(m.cryptoAddressData?.address),
PaymentType.ledger => maskAccountEdge(m.dataAsOrNull<LedgerPaymentMethod>()?.ledgerAccountRef),
};
String getPaymentTypeDescription(BuildContext context, PaymentMethod m) {
return getPaymentMethodMaskedValue(m) ?? AppLocalizations.of(context)!.notSet;
}
String? getPaymentMethodAccountId(PaymentMethod m) => _accountIdentifier(m);
String? _accountIdentifier(PaymentMethod m) => switch (m.type) {
PaymentType.card => m.cardData?.pan,
PaymentType.cardToken => m.dataAsOrNull<CardTokenPaymentMethod>()?.maskedPan,
PaymentType.bankAccount => m.bankAccountData?.accountNumber,
PaymentType.iban => m.ibanData?.iban,
PaymentType.wallet => m.walletData?.walletId,
PaymentType.managedWallet => () {
final data = m.dataAsOrNull<ManagedWalletPaymentMethod>();
if (data == null) return null;
return data.asset?.tokenSymbol ?? data.managedWalletRef;
}(),
PaymentType.managedWallet => m.dataAsOrNull<ManagedWalletPaymentMethod>()?.managedWalletRef,
PaymentType.externalChain => m.cryptoAddressData?.address,
PaymentType.ledger => m.dataAsOrNull<LedgerPaymentMethod>()?.ledgerAccountRef,
};
String getPaymentTypeDescription(BuildContext context, PaymentMethod m) {
return _displayString(m) ?? AppLocalizations.of(context)!.notSet;
}