feat(diet): add diet editing

This commit is contained in:
mso7nueh
2025-05-20 18:28:32 +03:00
parent 42deaea426
commit 941cfb04cc
9 changed files with 66 additions and 26 deletions

View File

@@ -27,8 +27,11 @@ import 'package:go_router/go_router.dart';
class CreateDietScreen extends StatelessWidget {
static const name = 'createDietScreen';
static const path = '/create-diet-screen';
const CreateDietScreen({super.key, this.diet});
final Diet? diet;
@override
Widget build(BuildContext context) {
return BlocProvider(
@@ -40,6 +43,7 @@ class CreateDietScreen extends StatelessWidget {
class CreateDietScreenContent extends StatefulWidget {
const CreateDietScreenContent({super.key, this.diet});
final Diet? diet;
@override
@@ -95,7 +99,7 @@ class _CreateDietScreenContentState extends State<CreateDietScreenContent> {
appBar: AppBar(
centerTitle: true,
title: Text(
widget.diet != null ? 'Редактирование диеты' : s.create_diet,
s.create_diet,
textAlign: TextAlign.center,
overflow: TextOverflow.ellipsis,
softWrap: true,
@@ -151,7 +155,7 @@ class _CreateDietScreenContentState extends State<CreateDietScreenContent> {
const SizedBox(height: 12),
const DietDurationDropDownWidget(),
const SizedBox(height: 12),
const StatusDropDownWidget(),
StatusDropDownWidget(dietState: widget.diet?.state),
const SizedBox(height: 16),
const DietTypeChoiceWidget(),
const SizedBox(height: 16),
@@ -247,23 +251,13 @@ class _CreateDietScreenContentState extends State<CreateDietScreenContent> {
else
CustomOutlinedButton(
onPressed: () async {
if (widget.diet != null) {
final result = await context.read<CreateDietCubit>().updateDiet(
widget.diet!.id,
);
if (result == 'error') {
if (!context.mounted) return;
showErrorDialog(context, title: '${s.could_not_update_diet} ${state.dietData.name}');
}
} else {
final result = await context.read<CreateDietCubit>().createDiet();
if (result == 'error') {
if (!context.mounted) return;
showErrorDialog(context, title: '${s.could_not_publish_diet} ${state.dietData.name}');
}
final result = await context.read<CreateDietCubit>().createDiet();
if (result == 'error') {
if (!context.mounted) return;
showErrorDialog(context, title: '${s.could_not_publish_diet} ${state.dietData.name}');
}
},
text: widget.diet != null ? s.save : s.publish,
text: s.publish,
height: 52,
buttonTextStyle: TextStyles.textMSemibold.copyWith(color: appTheme.whiteA700),
buttonStyle: ButtonStyle(