buildServiceAgreementTileState function

ServiceAgreementTileState buildServiceAgreementTileState({
  1. required BuildContext context,
  2. required DateTime? serviceAgreementExpiry,
  3. required bool? hasServiceAgreement,
  4. required DateTime getCurrentDate(),
})

Implementation

ServiceAgreementTileState buildServiceAgreementTileState({
  required BuildContext context,
  required DateTime? serviceAgreementExpiry,
  required bool? hasServiceAgreement,
  required DateTime Function() getCurrentDate,
}) {
  final isExpired = serviceAgreementExpiry != null
      ? getCurrentDate().isAfter(serviceAgreementExpiry)
      : null;

  final subtitle = _buildSubtitle(
    context: context,
    serviceAgreementExpiry: serviceAgreementExpiry,
    isExpired: isExpired,
  );

  final statusKind = _statusKindFor(
    isExpired: isExpired,
    hasServiceAgreement: hasServiceAgreement,
  );

  final cardBackground = isExpired == null
      ? ElevationOverlay.applySurfaceTint(
          context.colorScheme.surface,
          context.colorScheme.surfaceTint,
          4.0,
        )
      : null;

  final statusBgColor = _statusBackgroundColorFor(
    context: context,
    statusKind: statusKind,
    cardBackground: cardBackground,
  );

  final statusLabel = _statusLabelFor(
    context: context,
    statusKind: statusKind,
    statusBgColor: statusBgColor,
  );

  return ServiceAgreementTileState(
    subtitle: subtitle,
    statusLabel: statusLabel,
    statusBgColor: statusBgColor,
    cardBackground: cardBackground,
    isExpired: isExpired,
  );
}