feat: finish day button

This commit is contained in:
BLoC
2025-03-05 16:10:18 +03:00
parent b859bea547
commit 6c40c6d624
9 changed files with 73 additions and 89 deletions

View File

@@ -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 = "";

View File

@@ -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<String, Object?> json) => _$FinishDiaryDayModelFromJson(json);

View File

@@ -22,7 +22,6 @@ FinishDiaryDayModel _$FinishDiaryDayModelFromJson(Map<String, dynamic> 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<String, dynamic> 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<String, dynamic> 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<String, dynamic> 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.

View File

@@ -11,7 +11,6 @@ _$FinishDiaryDayModelImpl _$$FinishDiaryDayModelImplFromJson(
_$FinishDiaryDayModelImpl(
wakeUp: json['wakeUp'] as String,
retire: json['retire'] as String,
comment: json['comment'] as String,
);
Map<String, dynamic> _$$FinishDiaryDayModelImplToJson(
@@ -19,5 +18,4 @@ Map<String, dynamic> _$$FinishDiaryDayModelImplToJson(
<String, dynamic>{
'wakeUp': instance.wakeUp,
'retire': instance.retire,
'comment': instance.comment,
};

View File

@@ -60,13 +60,11 @@ class DiaryCubit extends Cubit<DiaryState> {
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();
}

View File

@@ -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<DiaryScreen> {
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,
),
),
],
),
),

View File

@@ -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<FinishDayButtonWidget> createState() => _FinishDayButtonWidgetState();
// }
//
// class _FinishDayButtonWidgetState extends State<FinishDayButtonWidget> {
// @override
// Widget build(BuildContext context) {
// return InkWell(
// onTap: () => context.read<DiaryCubit>().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<FinishDayButtonWidget> createState() => _FinishDayButtonWidgetState();
}
class _FinishDayButtonWidgetState extends State<FinishDayButtonWidget> {
@override
Widget build(BuildContext context) {
return InkWell(
onTap: () => context.read<DiaryCubit>().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,
),
),
),
),
);
}
}

View File

@@ -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,
),
);
}

View File

@@ -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: