74 lines
2.0 KiB
Dart
74 lines
2.0 KiB
Dart
import 'package:flutter/widgets.dart';
|
|
import 'package:ui_kit/ui_kit.dart';
|
|
|
|
class PrimaryCard extends StatefulWidget {
|
|
const PrimaryCard({
|
|
super.key,
|
|
required this.title,
|
|
required this.category,
|
|
required this.price,
|
|
this.onChange,
|
|
});
|
|
final String title;
|
|
final String category;
|
|
final String price;
|
|
final Function(bool value)? onChange;
|
|
|
|
@override
|
|
State<PrimaryCard> createState() => _PrimaryCardState();
|
|
}
|
|
|
|
class _PrimaryCardState extends State<PrimaryCard> {
|
|
bool inCart = false;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return CardWidget(
|
|
child: Column(
|
|
children: [
|
|
Text(widget.title, style: headlineMedium),
|
|
SizedBox(height: 16),
|
|
Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
Text(
|
|
widget.category,
|
|
style: captionSemibold.copyWith(color: captionColor),
|
|
),
|
|
SizedBox(height: 4),
|
|
Text(widget.price, style: title3Semibold),
|
|
],
|
|
),
|
|
inCart
|
|
? ButtonWidget(
|
|
onPressed: () {
|
|
setState(() {
|
|
inCart = !inCart;
|
|
widget.onChange!(inCart);
|
|
});
|
|
},
|
|
size: 'small',
|
|
label: 'Убрать',
|
|
variant: 'solid',
|
|
)
|
|
: ButtonWidget(
|
|
onPressed: () {
|
|
setState(() {
|
|
inCart = !inCart;
|
|
});
|
|
},
|
|
size: 'small',
|
|
label: "Добавить",
|
|
variant: 'flat',
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|