buildServiceAgreementTileState function
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,
);
}