From 6c40c6d6240087fc2554408ae7857b10c6d570b1 Mon Sep 17 00:00:00 2001 From: BLoC Date: Wed, 5 Mar 2025 16:10:18 +0300 Subject: [PATCH] feat: finish day button --- ios/Runner.xcodeproj/project.pbxproj | 12 +-- .../diary/models/finish_diary_day_model.dart | 1 - .../finish_diary_day_model.freezed.dart | 32 ++---- .../models/finish_diary_day_model.g.dart | 2 - .../diary/presentation/bloc/diary_cubit.dart | 2 - .../presentation/pages/diary_screen.dart | 8 ++ .../widgets/finish_day_button_widget.dart | 101 +++++++++--------- .../diary/repositories/diary_repository.dart | 2 - pubspec.yaml | 2 +- 9 files changed, 73 insertions(+), 89 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 02e1915a..8b1d1fef 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -365,7 +365,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 44; + CURRENT_PROJECT_VERSION = 45; DEVELOPMENT_TEAM = VL68C36HYS; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( @@ -383,7 +383,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 1.0.44; + MARKETING_VERSION = 1.0.45; PRODUCT_BUNDLE_IDENTIFIER = com.eatvioapp.app; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -514,7 +514,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 44; + CURRENT_PROJECT_VERSION = 45; DEVELOPMENT_TEAM = VL68C36HYS; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( @@ -532,7 +532,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 1.0.44; + MARKETING_VERSION = 1.0.45; PRODUCT_BUNDLE_IDENTIFIER = com.eatvioapp.app; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -551,7 +551,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 44; + CURRENT_PROJECT_VERSION = 45; DEVELOPMENT_TEAM = VL68C36HYS; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( @@ -569,7 +569,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 1.0.44; + MARKETING_VERSION = 1.0.45; PRODUCT_BUNDLE_IDENTIFIER = com.eatvioapp.app; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/lib/features/diary/models/finish_diary_day_model.dart b/lib/features/diary/models/finish_diary_day_model.dart index df3552e8..d1522273 100644 --- a/lib/features/diary/models/finish_diary_day_model.dart +++ b/lib/features/diary/models/finish_diary_day_model.dart @@ -9,7 +9,6 @@ class FinishDiaryDayModel with _$FinishDiaryDayModel { const factory FinishDiaryDayModel({ required String wakeUp, required String retire, - required String comment, }) = _FinishDiaryDayModel; factory FinishDiaryDayModel.fromJson(Map json) => _$FinishDiaryDayModelFromJson(json); diff --git a/lib/features/diary/models/finish_diary_day_model.freezed.dart b/lib/features/diary/models/finish_diary_day_model.freezed.dart index d63bb02d..b9192501 100644 --- a/lib/features/diary/models/finish_diary_day_model.freezed.dart +++ b/lib/features/diary/models/finish_diary_day_model.freezed.dart @@ -22,7 +22,6 @@ FinishDiaryDayModel _$FinishDiaryDayModelFromJson(Map json) { mixin _$FinishDiaryDayModel { String get wakeUp => throw _privateConstructorUsedError; String get retire => throw _privateConstructorUsedError; - String get comment => throw _privateConstructorUsedError; /// Serializes this FinishDiaryDayModel to a JSON map. Map toJson() => throw _privateConstructorUsedError; @@ -40,7 +39,7 @@ abstract class $FinishDiaryDayModelCopyWith<$Res> { FinishDiaryDayModel value, $Res Function(FinishDiaryDayModel) then) = _$FinishDiaryDayModelCopyWithImpl<$Res, FinishDiaryDayModel>; @useResult - $Res call({String wakeUp, String retire, String comment}); + $Res call({String wakeUp, String retire}); } /// @nodoc @@ -60,7 +59,6 @@ class _$FinishDiaryDayModelCopyWithImpl<$Res, $Val extends FinishDiaryDayModel> $Res call({ Object? wakeUp = null, Object? retire = null, - Object? comment = null, }) { return _then(_value.copyWith( wakeUp: null == wakeUp @@ -71,10 +69,6 @@ class _$FinishDiaryDayModelCopyWithImpl<$Res, $Val extends FinishDiaryDayModel> ? _value.retire : retire // ignore: cast_nullable_to_non_nullable as String, - comment: null == comment - ? _value.comment - : comment // ignore: cast_nullable_to_non_nullable - as String, ) as $Val); } } @@ -87,7 +81,7 @@ abstract class _$$FinishDiaryDayModelImplCopyWith<$Res> __$$FinishDiaryDayModelImplCopyWithImpl<$Res>; @override @useResult - $Res call({String wakeUp, String retire, String comment}); + $Res call({String wakeUp, String retire}); } /// @nodoc @@ -105,7 +99,6 @@ class __$$FinishDiaryDayModelImplCopyWithImpl<$Res> $Res call({ Object? wakeUp = null, Object? retire = null, - Object? comment = null, }) { return _then(_$FinishDiaryDayModelImpl( wakeUp: null == wakeUp @@ -116,10 +109,6 @@ class __$$FinishDiaryDayModelImplCopyWithImpl<$Res> ? _value.retire : retire // ignore: cast_nullable_to_non_nullable as String, - comment: null == comment - ? _value.comment - : comment // ignore: cast_nullable_to_non_nullable - as String, )); } } @@ -127,8 +116,7 @@ class __$$FinishDiaryDayModelImplCopyWithImpl<$Res> /// @nodoc @JsonSerializable() class _$FinishDiaryDayModelImpl implements _FinishDiaryDayModel { - const _$FinishDiaryDayModelImpl( - {required this.wakeUp, required this.retire, required this.comment}); + const _$FinishDiaryDayModelImpl({required this.wakeUp, required this.retire}); factory _$FinishDiaryDayModelImpl.fromJson(Map json) => _$$FinishDiaryDayModelImplFromJson(json); @@ -137,12 +125,10 @@ class _$FinishDiaryDayModelImpl implements _FinishDiaryDayModel { final String wakeUp; @override final String retire; - @override - final String comment; @override String toString() { - return 'FinishDiaryDayModel(wakeUp: $wakeUp, retire: $retire, comment: $comment)'; + return 'FinishDiaryDayModel(wakeUp: $wakeUp, retire: $retire)'; } @override @@ -151,13 +137,12 @@ class _$FinishDiaryDayModelImpl implements _FinishDiaryDayModel { (other.runtimeType == runtimeType && other is _$FinishDiaryDayModelImpl && (identical(other.wakeUp, wakeUp) || other.wakeUp == wakeUp) && - (identical(other.retire, retire) || other.retire == retire) && - (identical(other.comment, comment) || other.comment == comment)); + (identical(other.retire, retire) || other.retire == retire)); } @JsonKey(includeFromJson: false, includeToJson: false) @override - int get hashCode => Object.hash(runtimeType, wakeUp, retire, comment); + int get hashCode => Object.hash(runtimeType, wakeUp, retire); /// Create a copy of FinishDiaryDayModel /// with the given fields replaced by the non-null parameter values. @@ -179,8 +164,7 @@ class _$FinishDiaryDayModelImpl implements _FinishDiaryDayModel { abstract class _FinishDiaryDayModel implements FinishDiaryDayModel { const factory _FinishDiaryDayModel( {required final String wakeUp, - required final String retire, - required final String comment}) = _$FinishDiaryDayModelImpl; + required final String retire}) = _$FinishDiaryDayModelImpl; factory _FinishDiaryDayModel.fromJson(Map json) = _$FinishDiaryDayModelImpl.fromJson; @@ -189,8 +173,6 @@ abstract class _FinishDiaryDayModel implements FinishDiaryDayModel { String get wakeUp; @override String get retire; - @override - String get comment; /// Create a copy of FinishDiaryDayModel /// with the given fields replaced by the non-null parameter values. diff --git a/lib/features/diary/models/finish_diary_day_model.g.dart b/lib/features/diary/models/finish_diary_day_model.g.dart index 2ac66074..a8d97c84 100644 --- a/lib/features/diary/models/finish_diary_day_model.g.dart +++ b/lib/features/diary/models/finish_diary_day_model.g.dart @@ -11,7 +11,6 @@ _$FinishDiaryDayModelImpl _$$FinishDiaryDayModelImplFromJson( _$FinishDiaryDayModelImpl( wakeUp: json['wakeUp'] as String, retire: json['retire'] as String, - comment: json['comment'] as String, ); Map _$$FinishDiaryDayModelImplToJson( @@ -19,5 +18,4 @@ Map _$$FinishDiaryDayModelImplToJson( { 'wakeUp': instance.wakeUp, 'retire': instance.retire, - 'comment': instance.comment, }; diff --git a/lib/features/diary/presentation/bloc/diary_cubit.dart b/lib/features/diary/presentation/bloc/diary_cubit.dart index b5b00adf..8c18c725 100644 --- a/lib/features/diary/presentation/bloc/diary_cubit.dart +++ b/lib/features/diary/presentation/bloc/diary_cubit.dart @@ -60,13 +60,11 @@ class DiaryCubit extends Cubit { required int diaryId, required String wakeUp, required String retire, - required String comment, }) async { await diaryRepository.finishDiaryDay( diaryId: diaryId, wakeUp: wakeUp, retire: retire, - comment: comment, ); await fetchDiary(); } diff --git a/lib/features/diary/presentation/pages/diary_screen.dart b/lib/features/diary/presentation/pages/diary_screen.dart index 250f3007..8c5e784f 100644 --- a/lib/features/diary/presentation/pages/diary_screen.dart +++ b/lib/features/diary/presentation/pages/diary_screen.dart @@ -7,6 +7,7 @@ import 'package:eatvio_app/features/diary/presentation/bloc/diary_state.dart'; import 'package:eatvio_app/features/diary/presentation/widgets/calendar_widget.dart'; import 'package:eatvio_app/core/locator_service.dart'; import 'package:eatvio_app/features/diary/presentation/widgets/calories_chart_widget.dart'; +import 'package:eatvio_app/features/diary/presentation/widgets/finish_day_button_widget.dart'; import 'package:eatvio_app/features/diary/presentation/widgets/meal_widget.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -47,6 +48,13 @@ class _DiaryScreenState extends State { if (state is DiaryStateLoading) const Loader(), if (state is DiaryStateLoaded) MealWidget(), CaloriesChartWidget(), + if (state is DiaryStateLoaded && state.diary.closed == 0) + Padding( + padding: const EdgeInsets.only(top: 12), + child: FinishDayButtonWidget( + diaryDay: state.diary, + ), + ), ], ), ), diff --git a/lib/features/diary/presentation/widgets/finish_day_button_widget.dart b/lib/features/diary/presentation/widgets/finish_day_button_widget.dart index 055c6457..3ed14e27 100644 --- a/lib/features/diary/presentation/widgets/finish_day_button_widget.dart +++ b/lib/features/diary/presentation/widgets/finish_day_button_widget.dart @@ -1,50 +1,51 @@ -// import 'package:eatvio_app/features/diary/models/diary_day_model.dart'; -// import 'package:eatvio_app/features/diary/presentation/bloc/diary_cubit.dart'; -// import 'package:eatvio_app/core/theme/theme_helper.dart'; -// import 'package:flutter/material.dart'; -// import 'package:flutter_bloc/flutter_bloc.dart'; -// -// class FinishDayButtonWidget extends StatefulWidget { -// final DiaryDayModel diaryDay; -// -// const FinishDayButtonWidget({ -// super.key, -// required this.diaryDay, -// }); -// -// @override -// State createState() => _FinishDayButtonWidgetState(); -// } -// -// class _FinishDayButtonWidgetState extends State { -// @override -// Widget build(BuildContext context) { -// return InkWell( -// onTap: () => context.read().finishDiaryDay( -// diaryId: widget.diaryDay.id, -// date: widget.diaryDay.date, -// ), -// borderRadius: BorderRadius.circular(20), -// child: Ink( -// padding: EdgeInsets.symmetric(horizontal: 8), -// width: MediaQuery.of(context).size.width - 16, -// 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.w600, -// ), -// ), -// ), -// ), -// ); -// } -// } +import 'package:eatvio_app/features/diary/models/diary_day_model.dart'; +import 'package:eatvio_app/features/diary/presentation/bloc/diary_cubit.dart'; +import 'package:eatvio_app/core/theme/theme_helper.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +class FinishDayButtonWidget extends StatefulWidget { + final DiaryDayModel diaryDay; + + const FinishDayButtonWidget({ + super.key, + required this.diaryDay, + }); + + @override + State createState() => _FinishDayButtonWidgetState(); +} + +class _FinishDayButtonWidgetState extends State { + @override + Widget build(BuildContext context) { + return InkWell( + onTap: () => context.read().finishDiaryDay( + diaryId: widget.diaryDay.id, + wakeUp: widget.diaryDay.wakeup.toString(), + retire: widget.diaryDay.retire.toString(), + ), + borderRadius: BorderRadius.circular(20), + child: Ink( + padding: EdgeInsets.symmetric(horizontal: 8), + width: MediaQuery.of(context).size.width - 16, + 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.w600, + ), + ), + ), + ), + ); + } +} diff --git a/lib/features/diary/repositories/diary_repository.dart b/lib/features/diary/repositories/diary_repository.dart index 66cfb73a..754e1321 100644 --- a/lib/features/diary/repositories/diary_repository.dart +++ b/lib/features/diary/repositories/diary_repository.dart @@ -158,14 +158,12 @@ class DiaryRepository { required int diaryId, required String wakeUp, required String retire, - required String comment, }) async { return await diaryService.finishDiaryDay( diary: diaryId, finishDiaryDayModel: FinishDiaryDayModel( wakeUp: wakeUp, retire: retire, - comment: comment, ), ); } diff --git a/pubspec.yaml b/pubspec.yaml index 1f33f933..6eab7d58 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: eatvio_app description: A new Flutter project. -version: 1.0.44+44 +version: 1.0.45+45 publish_to: 'none' environment: