80 lines
2.5 KiB
Dart
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!,
|
|
),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|