diet creation scrren is done

This commit is contained in:
Username1548
2024-12-11 19:15:25 +07:00
parent 2e0a8c559f
commit 2f168a2f35
63 changed files with 3113 additions and 633 deletions

View File

@@ -1,11 +1,72 @@
import 'dart:developer';
import 'package:eatvio_app/features/plans/presentation/cubit/about_plan_state.dart';
import 'package:eatvio_app/features/plans/repositories/plan_repository.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
class AboutPlanCubit extends Cubit<AboutPlanState> {
AboutPlanCubit() : super(AboutPlanState.initial());
final PlanRepository planRepository;
AboutPlanCubit({required this.planRepository}) : super(AboutPlanState.initial());
Future<void> getPlan(String slug) async {
try {
final plan = await planRepository.getPlan(slug);
emit(state.copyWith(planModel: plan, error: null));
} catch (e, stackTrace) {
log(e.toString(), stackTrace: stackTrace);
emit(state.copyWith(error: e.toString()));
}
}
Future<void> getPlan() async{
Future<void> getPlanWithLoading(String slug) async {
try {
emit(state.copyWith(isLoading: true));
final plan = await planRepository.getPlan(slug);
emit(state.copyWith(
planModel: plan,
error: null,
isLoading: false,
),);
} catch (e, stackTrace) {
log(e.toString(), stackTrace: stackTrace);
emit(state.copyWith(error: e.toString(), isLoading: false));
}
}
void choseOption(int index) {
emit(state.copyWith(chosenOptionIndex: index));
}
Future<void> likePlan(String slug) async {
try {
await planRepository.likePlan(slug);
final plan = await planRepository.getPlan(slug);
emit(state.copyWith(planModel: plan, error: null));
} catch (e, stackTrace) {
log(e.toString(), stackTrace: stackTrace);
emit(state.copyWith(error: e.toString()));
}
}
Future<void> addToFavorite(String slug) async {
try {
await planRepository.addToFavorite(slug);
final plan = await planRepository.getPlan(slug);
emit(state.copyWith(planModel: plan, error: null));
} catch (e, stackTrace) {
log(e.toString(), stackTrace: stackTrace);
emit(state.copyWith(error: e.toString()));
}
}
Future<void> removeFromFavorite(String slug) async {
try {
await planRepository.removeFromFavorite(slug);
final plan = await planRepository.getPlan(slug);
emit(state.copyWith(planModel: plan, error: null));
} catch (e, stackTrace) {
log(e.toString(), stackTrace: stackTrace);
emit(state.copyWith(error: e.toString()));
}
}
}

View File

@@ -12,7 +12,8 @@ class AboutPlanState with _$AboutPlanState {
required bool isLoading,
required String? error,
required PlanModel? planModel,
required int chosenOptionIndex,
}) = _AboutPlanState;
factory AboutPlanState.initial() => const AboutPlanState(isLoading: false, error: null, planModel: null);
factory AboutPlanState.initial() => const AboutPlanState(chosenOptionIndex: 0, isLoading: false, error: null, planModel: null);
}

View File

@@ -19,6 +19,7 @@ mixin _$AboutPlanState {
bool get isLoading => throw _privateConstructorUsedError;
String? get error => throw _privateConstructorUsedError;
PlanModel? get planModel => throw _privateConstructorUsedError;
int get chosenOptionIndex => throw _privateConstructorUsedError;
/// Create a copy of AboutPlanState
/// with the given fields replaced by the non-null parameter values.
@@ -33,7 +34,11 @@ abstract class $AboutPlanStateCopyWith<$Res> {
AboutPlanState value, $Res Function(AboutPlanState) then) =
_$AboutPlanStateCopyWithImpl<$Res, AboutPlanState>;
@useResult
$Res call({bool isLoading, String? error, PlanModel? planModel});
$Res call(
{bool isLoading,
String? error,
PlanModel? planModel,
int chosenOptionIndex});
$PlanModelCopyWith<$Res>? get planModel;
}
@@ -56,6 +61,7 @@ class _$AboutPlanStateCopyWithImpl<$Res, $Val extends AboutPlanState>
Object? isLoading = null,
Object? error = freezed,
Object? planModel = freezed,
Object? chosenOptionIndex = null,
}) {
return _then(_value.copyWith(
isLoading: null == isLoading
@@ -70,6 +76,10 @@ class _$AboutPlanStateCopyWithImpl<$Res, $Val extends AboutPlanState>
? _value.planModel
: planModel // ignore: cast_nullable_to_non_nullable
as PlanModel?,
chosenOptionIndex: null == chosenOptionIndex
? _value.chosenOptionIndex
: chosenOptionIndex // ignore: cast_nullable_to_non_nullable
as int,
) as $Val);
}
@@ -96,7 +106,11 @@ abstract class _$$AboutPlanStateImplCopyWith<$Res>
__$$AboutPlanStateImplCopyWithImpl<$Res>;
@override
@useResult
$Res call({bool isLoading, String? error, PlanModel? planModel});
$Res call(
{bool isLoading,
String? error,
PlanModel? planModel,
int chosenOptionIndex});
@override
$PlanModelCopyWith<$Res>? get planModel;
@@ -118,6 +132,7 @@ class __$$AboutPlanStateImplCopyWithImpl<$Res>
Object? isLoading = null,
Object? error = freezed,
Object? planModel = freezed,
Object? chosenOptionIndex = null,
}) {
return _then(_$AboutPlanStateImpl(
isLoading: null == isLoading
@@ -132,6 +147,10 @@ class __$$AboutPlanStateImplCopyWithImpl<$Res>
? _value.planModel
: planModel // ignore: cast_nullable_to_non_nullable
as PlanModel?,
chosenOptionIndex: null == chosenOptionIndex
? _value.chosenOptionIndex
: chosenOptionIndex // ignore: cast_nullable_to_non_nullable
as int,
));
}
}
@@ -140,7 +159,10 @@ class __$$AboutPlanStateImplCopyWithImpl<$Res>
class _$AboutPlanStateImpl implements _AboutPlanState {
const _$AboutPlanStateImpl(
{required this.isLoading, required this.error, required this.planModel});
{required this.isLoading,
required this.error,
required this.planModel,
required this.chosenOptionIndex});
@override
final bool isLoading;
@@ -148,10 +170,12 @@ class _$AboutPlanStateImpl implements _AboutPlanState {
final String? error;
@override
final PlanModel? planModel;
@override
final int chosenOptionIndex;
@override
String toString() {
return 'AboutPlanState(isLoading: $isLoading, error: $error, planModel: $planModel)';
return 'AboutPlanState(isLoading: $isLoading, error: $error, planModel: $planModel, chosenOptionIndex: $chosenOptionIndex)';
}
@override
@@ -163,11 +187,14 @@ class _$AboutPlanStateImpl implements _AboutPlanState {
other.isLoading == isLoading) &&
(identical(other.error, error) || other.error == error) &&
(identical(other.planModel, planModel) ||
other.planModel == planModel));
other.planModel == planModel) &&
(identical(other.chosenOptionIndex, chosenOptionIndex) ||
other.chosenOptionIndex == chosenOptionIndex));
}
@override
int get hashCode => Object.hash(runtimeType, isLoading, error, planModel);
int get hashCode =>
Object.hash(runtimeType, isLoading, error, planModel, chosenOptionIndex);
/// Create a copy of AboutPlanState
/// with the given fields replaced by the non-null parameter values.
@@ -183,7 +210,8 @@ abstract class _AboutPlanState implements AboutPlanState {
const factory _AboutPlanState(
{required final bool isLoading,
required final String? error,
required final PlanModel? planModel}) = _$AboutPlanStateImpl;
required final PlanModel? planModel,
required final int chosenOptionIndex}) = _$AboutPlanStateImpl;
@override
bool get isLoading;
@@ -191,6 +219,8 @@ abstract class _AboutPlanState implements AboutPlanState {
String? get error;
@override
PlanModel? get planModel;
@override
int get chosenOptionIndex;
/// Create a copy of AboutPlanState
/// with the given fields replaced by the non-null parameter values.