my plans and my diets

This commit is contained in:
Username1548
2024-12-23 15:36:00 +07:00
parent 15a6ff44ef
commit 5ef1f3a660
52 changed files with 3857 additions and 573 deletions

View File

@@ -32,7 +32,7 @@ class AboutDietCubit extends Cubit<AboutDietState> {
}
}
Future<void> likeDiet(int id, int dietIndexInFeed) async {
Future<void> likeDiet(int id, int? dietIndexInFeed) async {
if (state is! DietStateLoaded) return;
final currentDiet = (state as DietStateLoaded).diet;
@@ -42,15 +42,18 @@ class AboutDietCubit extends Cubit<AboutDietState> {
totalLikes: currentDiet.totalLikes - 1,
wasLikedByMe: false,
);
dietsRepository.emitLikesStateToFeed(LikesState(wasLikedByMe: updatedDiet.wasLikedByMe, totalLikes: updatedDiet.totalLikes, index: dietIndexInFeed));
if (dietIndexInFeed != null) {
dietsRepository.emitLikesStateToFeed(LikesState(wasLikedByMe: updatedDiet.wasLikedByMe, totalLikes: updatedDiet.totalLikes, index: dietIndexInFeed));
}
emit(AboutDietState.loaded(updatedDiet));
} else {
final updatedDiet = currentDiet.copyWith(
totalLikes: currentDiet.totalLikes + 1,
wasLikedByMe: true,
);
dietsRepository.emitLikesStateToFeed(LikesState(wasLikedByMe: updatedDiet.wasLikedByMe, totalLikes: updatedDiet.totalLikes, index: dietIndexInFeed));
if (dietIndexInFeed != null) {
dietsRepository.emitLikesStateToFeed(LikesState(wasLikedByMe: updatedDiet.wasLikedByMe, totalLikes: updatedDiet.totalLikes, index: dietIndexInFeed));
}
emit(AboutDietState.loaded(updatedDiet));
}
@@ -62,14 +65,17 @@ class AboutDietCubit extends Cubit<AboutDietState> {
await dietsRepository.likeDiet(id);
} catch (e) {
log(e.toString());
dietsRepository.emitLikesStateToFeed(LikesState(wasLikedByMe: currentDiet.wasLikedByMe, totalLikes: currentDiet.totalLikes, index: dietIndexInFeed));
if (dietIndexInFeed != null) {
dietsRepository
.emitLikesStateToFeed(LikesState(wasLikedByMe: currentDiet.wasLikedByMe, totalLikes: currentDiet.totalLikes, index: dietIndexInFeed));
}
emit(AboutDietState.loaded(currentDiet));
}
},
);
}
Future<void> addToFavorite(int id, int dietIndex) async {
Future<void> addToFavorite(int id, int? dietIndex) async {
if (state is! DietStateLoaded) return;
final currentDiet = (state as DietStateLoaded).diet;
@@ -77,7 +83,9 @@ class AboutDietCubit extends Cubit<AboutDietState> {
final updatedDiet = currentDiet.copyWith(
isFavorite: true,
);
dietsRepository.emitFavoriteStateToFeed(FavoriteState(isFavorite: updatedDiet.isFavorite, index: dietIndex));
if (dietIndex != null) {
dietsRepository.emitFavoriteStateToFeed(FavoriteState(isFavorite: updatedDiet.isFavorite, index: dietIndex));
}
emit(AboutDietState.loaded(updatedDiet));
EasyDebounce.debounce(
@@ -89,14 +97,16 @@ class AboutDietCubit extends Cubit<AboutDietState> {
} catch (e) {
log(e.toString());
showErrorToast('Произошла ошибка. Попробуйте ещё раз через некоторое время');
dietsRepository.emitFavoriteStateToFeed(FavoriteState(isFavorite: currentDiet.isFavorite, index: dietIndex));
if (dietIndex != null) {
dietsRepository.emitFavoriteStateToFeed(FavoriteState(isFavorite: currentDiet.isFavorite, index: dietIndex));
}
emit(AboutDietState.loaded(currentDiet));
}
},
);
}
Future<void> removeFromFavorite(int id, int dietIndex) async {
Future<void> removeFromFavorite(int id, int? dietIndex) async {
if (state is! DietStateLoaded) return;
final currentDiet = (state as DietStateLoaded).diet;
@@ -104,7 +114,9 @@ class AboutDietCubit extends Cubit<AboutDietState> {
final updatedDiet = currentDiet.copyWith(
isFavorite: false,
);
dietsRepository.emitFavoriteStateToFeed(FavoriteState(isFavorite: updatedDiet.isFavorite, index: dietIndex));
if (dietIndex != null) {
dietsRepository.emitFavoriteStateToFeed(FavoriteState(isFavorite: updatedDiet.isFavorite, index: dietIndex));
}
emit(AboutDietState.loaded(updatedDiet));
EasyDebounce.debounce(
@@ -116,7 +128,9 @@ class AboutDietCubit extends Cubit<AboutDietState> {
} catch (e) {
log(e.toString());
showErrorToast('Произошла ошибка. Попробуйте ещё раз через некоторое время');
dietsRepository.emitFavoriteStateToFeed(FavoriteState(isFavorite: currentDiet.isFavorite, index: dietIndex));
if (dietIndex != null) {
dietsRepository.emitFavoriteStateToFeed(FavoriteState(isFavorite: currentDiet.isFavorite, index: dietIndex));
}
emit(AboutDietState.loaded(currentDiet));
}
},

View File

@@ -6,7 +6,7 @@ import 'package:eatvio_app/core/utils/localization_utils.dart';
import 'package:eatvio_app/core/utils/string_extentions.dart';
import 'package:eatvio_app/core/widgets/bookmark_button.dart';
import 'package:eatvio_app/core/widgets/custom_divider.dart';
import 'package:eatvio_app/core/widgets/diet_info_row.dart';
import 'package:eatvio_app/core/widgets/info_row.dart';
import 'package:eatvio_app/core/widgets/loader.dart';
import 'package:eatvio_app/features/diets/presentation/cubit/about_diet_cubit.dart';
import 'package:eatvio_app/features/diets/presentation/cubit/about_diet_state.dart';
@@ -32,7 +32,7 @@ import 'package:flutter_svg/svg.dart';
class AboutDietScreen extends StatefulWidget {
final Diet diet;
final int index;
final int? index;
final bool navigateToComments;
late final List<int> selectedIndexes;
@@ -132,10 +132,11 @@ class _AboutDietScreenState extends State<AboutDietScreen> {
),
backgroundColor: appTheme.greenA700,
onPressed: () {
final cubit = context.read<AboutDietCubit>();
showModalBottomSheet(
context: context,
builder: (context) => StartDietBottomSheet(
aboutDietCubit: context.read<AboutDietCubit>(),
aboutDietCubit: cubit,
),
);
},
@@ -150,7 +151,7 @@ class _AboutDietScreenState extends State<AboutDietScreen> {
BookmarkButton(
isFavorite: dietState.diet.isFavorite,
onTap: () {
if (dietState.diet.isFavorite) {
if (dietState.diet.isFavorite) {
dietsCubit.removeFromFavorite(widget.diet.id, widget.index);
} else {
dietsCubit.addToFavorite(widget.diet.id, widget.index);

View File

@@ -57,8 +57,8 @@ class _ExpandableTextState extends State<ExpandableText> {
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Colors.white.withOpacity(0.0),
Colors.white.withOpacity(0.6),
Colors.white.withValues(alpha: 0.0),
Colors.white.withValues(alpha: 0.6),
Colors.white,
],
),

View File

@@ -2,14 +2,15 @@ import 'package:eatvio_app/core/theme/theme_helper.dart';
import 'package:flutter/material.dart';
class InfoBouble extends StatelessWidget {
const InfoBouble({super.key, required this.children, this.backgroundColor, this.radius = 100});
const InfoBouble({super.key, required this.children, this.backgroundColor, this.radius = 100, this.padding});
final List<Widget> children;
final Color? backgroundColor;
final double radius;
final EdgeInsetsGeometry? padding;
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.symmetric(horizontal: 12, vertical: 8.5),
padding: padding ?? EdgeInsets.symmetric(horizontal: 12, vertical: 8.5),
decoration: BoxDecoration(
color: backgroundColor ?? appTheme.gray50,
borderRadius: BorderRadius.circular(radius),