2024-04-07 19:59:38 +02:00

80 lines
2.5 KiB
Dart

import 'package:flutter/material.dart';
class PremiumRewardCard extends StatelessWidget {
const PremiumRewardCard(
{super.key,
this.imageKey,
this.icon,
this.title,
this.description,
this.soon = false});
final String? imageKey;
final Widget? icon;
final Widget? title;
final Widget? description;
final bool soon;
@override
Widget build(BuildContext context) {
return Card(
margin: EdgeInsets.zero,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16.0)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if (soon)
const Padding(
padding: EdgeInsets.only(left: 8.0),
child: Chip(
labelPadding: EdgeInsets.zero,
padding: EdgeInsets.symmetric(horizontal: 12.0),
backgroundColor: Color(0x777645D3),
label: Text("Hamarosan",
style: TextStyle(fontWeight: FontWeight.w500)),
),
),
if (imageKey != null)
Padding(
padding: const EdgeInsets.symmetric(horizontal: 14.0)
.add(EdgeInsets.only(bottom: 12.0, top: soon ? 0 : 14.0)),
child: Image.asset("assets/images/${imageKey!}.png"),
)
else
const SizedBox(height: 12),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 12.0),
child: Row(
children: [
if (icon != null) ...[icon!, const SizedBox(width: 12.0)],
if (title != null)
Expanded(
child: DefaultTextStyle(
style: Theme.of(context)
.textTheme
.bodyMedium!
.copyWith(fontWeight: FontWeight.w700, fontSize: 20),
child: title!,
),
),
],
),
),
if (description != null)
Padding(
padding: const EdgeInsets.symmetric(horizontal: 12.0)
.add(const EdgeInsets.only(top: 4.0, bottom: 12.0)),
child: DefaultTextStyle(
style: Theme.of(context)
.textTheme
.bodyMedium!
.copyWith(fontSize: 16),
child: description!,
),
),
],
),
);
}
}