ComebackBundleCard constructor
ComebackBundleCard({
- Key? key,
- required String title,
- required String body,
- required String absenceLabel,
- required List<
MilestoneReward> rewards, - required VoidCallback onClaim,
- String? expiryLabel,
- bool isExpired = false,
- String? badgeLabel,
- String claimLabel = 'Claim Bundle',
- VoidCallback? onViewOffer,
- String viewOfferLabel = 'View Offer',
- String? semanticLabel,
Implementation
ComebackBundleCard({
super.key,
required this.title,
required this.body,
required this.absenceLabel,
required this.rewards,
required this.onClaim,
this.expiryLabel,
this.isExpired = false,
this.badgeLabel,
this.claimLabel = 'Claim Bundle',
this.onViewOffer,
this.viewOfferLabel = 'View Offer',
this.semanticLabel,
}) {
if (title.trim().isEmpty) {
throw ArgumentError.value(title, 'title', 'must not be empty');
}
if (body.trim().isEmpty) {
throw ArgumentError.value(body, 'body', 'must not be empty');
}
if (absenceLabel.trim().isEmpty) {
throw ArgumentError.value(
absenceLabel,
'absenceLabel',
'must not be empty',
);
}
if (claimLabel.trim().isEmpty || viewOfferLabel.trim().isEmpty) {
throw ArgumentError('action labels must not be empty');
}
for (final reward in rewards) {
if (reward.label.trim().isEmpty) {
throw ArgumentError.value(
reward.label,
'rewards',
'label must not be empty',
);
}
if (reward.amountLabel != null && reward.amountLabel!.trim().isEmpty) {
throw ArgumentError.value(
reward.amountLabel,
'rewards',
'amountLabel must not be empty when provided',
);
}
}
}