customizationQueryForPaymentRequest static method

(String?, num?) customizationQueryForPaymentRequest(
  1. PaymentRequest paymentRequest, {
  2. String? customizationCurrency,
  3. num? customizationAmount,
})

Resolves (currency, amount) for refreshCheckoutCustomization from paymentRequest, with optional overrides (same rules as PaymentOptionsSheetFlowBloc).

Implementation

static (String?, num?) customizationQueryForPaymentRequest(
  PaymentRequest paymentRequest, {
  String? customizationCurrency,
  num? customizationAmount,
}) {
  final overrideCurrency = customizationCurrency?.trim();
  final hasOverrideCurrency =
      overrideCurrency != null && overrideCurrency.isNotEmpty;

  if (paymentRequest.orderDetails.isEmpty) {
    return (
      hasOverrideCurrency ? overrideCurrency : null,
      customizationAmount,
    );
  }

  final first = paymentRequest.orderDetails.first;
  final orderCurrency = first.currency.trim();
  final parsedAmount = num.tryParse(first.amount.trim());

  final currency = hasOverrideCurrency
      ? overrideCurrency
      : (orderCurrency.isEmpty ? null : orderCurrency);
  final amount = customizationAmount ?? parsedAmount;

  return (currency, amount);
}