import 'package:eatvio_app/core/theme/custom_text_style.dart'; import 'package:eatvio_app/core/theme/theme_helper.dart'; import 'package:eatvio_app/core/widgets/custom_divider.dart'; import 'package:eatvio_app/features/diary/presentation/bloc/diary_cubit.dart'; import 'package:eatvio_app/features/diary/presentation/bloc/diary_state.dart'; import 'package:eatvio_app/generated/l10n.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; class ChosenDietWidget extends StatelessWidget { const ChosenDietWidget({super.key}); @override Widget build(BuildContext context) { return BlocBuilder(builder: (context, state) { if (state is DiaryStateLoaded) { if (state.diary.typeOfDiary.hasChosenDiet) { return ChosenDietWidgetContent( currentDietDay: state.diary.dayOfChosenDiet ?? 0, dietName: state.diary.diet?.name ?? '', dietDuration: state.diary.diet?.duration ?? 0, ); } } if (state is DiaryStateLoadedTomorrowWithDiet) { if (state.diary.typeOfDiary.hasChosenDiet) { return Column( children: [ const CustomDivider(), const SizedBox(height: 16), ChosenDietWidgetContent( currentDietDay: state.diary.dayOfChosenDiet ?? 0, dietName: state.diary.diet?.name ?? '', dietDuration: state.diary.diet?.duration ?? 0, ), ], ); } } return const SizedBox.shrink(); }); } } class ChosenDietWidgetContent extends StatelessWidget { const ChosenDietWidgetContent({ super.key, required this.currentDietDay, required this.dietName, required this.dietDuration, }); final int currentDietDay; final String dietName; final int dietDuration; @override Widget build(BuildContext context) { final size = MediaQuery.sizeOf(context); final s = S.of(context); return Column( children: [ Row( children: [ SizedBox( width: size.width * 0.4, child: Text(dietName, style: TextStyles.textLMedium.copyWith(color: appTheme.black)), ), const Spacer(), Container( decoration: BoxDecoration(color: appTheme.dividerColor, borderRadius: BorderRadius.circular(12)), padding: const EdgeInsets.symmetric(vertical: 6, horizontal: 12), child: Text('${s.day} $currentDietDay из $dietDuration', style: TextStyles.textMSemibold.copyWith(color: appTheme.gray)), ) ], ), const SizedBox( height: 16, ) ], ); } }