isDisplayable method

bool isDisplayable({
  1. required String? paymentType,
  2. required String eventStatus,
  3. required bool isSplitSessionEvent,
})

Whether a payment leg summary should be displayed under this policy.

Phantom Purchase(paymentType='split') rows are unconditionally excluded.

Implementation

bool isDisplayable({
  required String? paymentType,
  required String eventStatus,
  required bool isSplitSessionEvent,
}) {
  // Phantom Purchase(paymentType='split') rows are never useful.
  if (paymentType?.toLowerCase() == 'split' && !isSplitSessionEvent) {
    return false;
  }

  if (isSplitSessionEvent) return includeParent;

  final status = eventStatus.toLowerCase();
  return switch (status) {
    'succeeded' => true,
    'failed' => includeFailed,
    'cancelled' => includeCancelled,
    'pending' => includePending,
    'abandoned' || 'error' => includeFailed,
    _ => false,
  };
}