feat: settings (data save) + new fields

This commit is contained in:
mso7nueh
2024-10-02 13:10:21 +03:00
parent 5442a3f2e2
commit de30b93fa6
11 changed files with 338 additions and 117 deletions

View File

@@ -1,5 +1,6 @@
import 'package:eatvio_app/data/models/selectionPopupModel/selection_popup_model.dart';
import 'package:eatvio_app/features/profile/models/profile_model.dart';
import 'package:eatvio_app/features/settings/entities/settings_entity.dart';
import 'package:eatvio_app/features/settings/presentation/bloc/settings_cubit/settings_state.dart';
import 'package:eatvio_app/generated/l10n.dart';
import 'package:eatvio_app/theme/theme_helper.dart';
import 'package:eatvio_app/widgets/custom_drop_down.dart';
@@ -9,11 +10,11 @@ import 'package:flutter/services.dart';
import 'package:go_router/go_router.dart';
class PressureScreen extends StatefulWidget {
final ProfileDetailsModel profileDetailsModel;
final SettingsEntity settingsEntity;
const PressureScreen({
super.key,
required this.profileDetailsModel,
required this.settingsEntity,
});
@override
@@ -30,21 +31,15 @@ class _PressureScreenState extends State<PressureScreen> {
@override
void initState() {
super.initState();
bloodPressureUpController.text = widget.profileDetailsModel.bloodPressureUp.toString();
bloodPressureDownController.text = widget.profileDetailsModel.bloodPressureDown.toString();
hypo = widget.profileDetailsModel.hasHypo ? selectionPopupList[0] : selectionPopupList[1];
hyper = widget.profileDetailsModel.hasHyper ? selectionPopupList[0] : selectionPopupList[1];
bloodPressureUpController.text = widget.settingsEntity.profileDetailsModel.bloodPressureUp.toString();
bloodPressureDownController.text = widget.settingsEntity.profileDetailsModel.bloodPressureDown.toString();
hypo = widget.settingsEntity.profileDetailsModel.hasHypo ? selectionPopupList[1] : selectionPopupList[0];
hyper = widget.settingsEntity.profileDetailsModel.hasHyper ? selectionPopupList[1] : selectionPopupList[0];
}
final List<SelectionPopupModel> selectionPopupList = [
SelectionPopupModel(
id: 1,
title: "Да",
),
SelectionPopupModel(
id: 0,
title: "Нет",
),
SelectionPopupModel(id: 0, title: 'Нет', value: false),
SelectionPopupModel(id: 1, title: 'Да', value: true),
];
@override
@@ -113,7 +108,17 @@ class _PressureScreenState extends State<PressureScreen> {
_saveButton() {
return InkWell(
onTap: () => GoRouter.of(context).pop(),
onTap: () {
widget.settingsEntity.settingsCubit.updateProfileDetails(
profileDetailsModel: (widget.settingsEntity.settingsCubit.state as SettingsStateLoaded).profileDetails.copyWith(
bloodPressureUp: int.parse(bloodPressureUpController.text),
bloodPressureDown: int.parse(bloodPressureDownController.text),
hasHyper: hyper.value,
hasHypo: hypo.value,
),
);
GoRouter.of(context).pop();
},
borderRadius: BorderRadius.circular(20),
child: Ink(
height: 52,