fix: fix analyzer

This commit is contained in:
mso7nueh
2024-11-20 11:15:20 +03:00
parent f230833c4e
commit 1ac956b448
10 changed files with 472 additions and 5 deletions

View File

@@ -1,29 +1,38 @@
import 'package:eatvio_app/features/diary/presentation/bloc/diary_cubit.dart';
import 'package:eatvio_app/theme/theme_helper.dart';
import 'package:eatvio_app/widgets/custom_text_form_field.dart';
import 'package:flutter/material.dart';
import 'package:lottie/lottie.dart';
class GlossaryModerationRequestModalWidget extends StatefulWidget {
final DiaryCubit diaryCubit;
final String productName;
const GlossaryModerationRequestModalWidget({
super.key,
required this.productName,
required this.productName, required this.diaryCubit,
});
@override
State<GlossaryModerationRequestModalWidget> createState() => _GlossaryModerationRequestModalWidgetState();
}
enum GlossaryState { alert, addNewProduct, finish }
enum GlossaryState { alert, addNewProduct, success }
class _GlossaryModerationRequestModalWidgetState extends State<GlossaryModerationRequestModalWidget> {
GlossaryState glossaryState = GlossaryState.alert;
final productNameController = TextEditingController();
final energyController = TextEditingController();
final proteinsController = TextEditingController();
final fatsController = TextEditingController();
final carbohydratesController = TextEditingController();
@override
Widget build(BuildContext context) {
if (glossaryState == GlossaryState.alert) {
return _alert();
} else if (glossaryState == GlossaryState.success) {
return _success();
} else {
return _addNewGlossaryProduct();
}
@@ -126,6 +135,58 @@ class _GlossaryModerationRequestModalWidgetState extends State<GlossaryModeratio
);
}
_success() {
return Padding(
padding: EdgeInsets.all(16),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text(
'Продукт успешно отправлен\nна модерацию',
textAlign: TextAlign.center,
style: TextStyle(
color: Color(0xFF323F4B),
fontSize: 20,
fontWeight: FontWeight.w600,
),
),
const SizedBox(height: 16),
Lottie.asset(
'assets/lottie_animations/success.json',
width: 160,
height: 160,
),
const SizedBox(height: 16),
InkWell(
onTap: () {
Navigator.of(context).pop();
},
borderRadius: BorderRadius.circular(20),
child: Ink(
decoration: BoxDecoration(
color: appTheme.blueA400,
borderRadius: BorderRadius.circular(20),
),
child: Container(
padding: EdgeInsets.all(16),
alignment: Alignment.center,
child: Text(
'Закрыть',
style: TextStyle(
color: Colors.white,
fontSize: 18,
fontWeight: FontWeight.w500,
),
),
),
),
),
const SizedBox(height: 16),
],
),
);
}
_addNewGlossaryProduct() {
return Padding(
padding: const EdgeInsets.all(16),
@@ -163,12 +224,16 @@ class _GlossaryModerationRequestModalWidgetState extends State<GlossaryModeratio
Expanded(
child: CustomTextFormField(
hintText: 'Калории',
controller: energyController,
keyboardType: TextInputType.number,
),
),
const SizedBox(width: 8),
Expanded(
child: CustomTextFormField(
hintText: 'Белки',
controller: proteinsController,
keyboardType: TextInputType.number,
),
),
],
@@ -180,19 +245,34 @@ class _GlossaryModerationRequestModalWidgetState extends State<GlossaryModeratio
Expanded(
child: CustomTextFormField(
hintText: 'Жиры',
controller: fatsController,
keyboardType: TextInputType.number,
),
),
const SizedBox(width: 8),
Expanded(
child: CustomTextFormField(
hintText: 'Углеводы',
controller: carbohydratesController,
keyboardType: TextInputType.number,
),
),
],
),
const SizedBox(height: 12),
InkWell(
onTap: () {},
onTap: () {
widget.diaryCubit.sendProductToModeration(
name: productNameController.text,
energy: int.parse(energyController.text),
proteins: int.parse(proteinsController.text),
fats: int.parse(fatsController.text),
carbohydrates: int.parse(carbohydratesController.text),
);
setState(() {
glossaryState = GlossaryState.success;
});
},
borderRadius: BorderRadius.circular(20),
child: Ink(
padding: EdgeInsets.symmetric(horizontal: 8),