import 'dart:developer'; import 'package:eatvio_app/core/widgets/data_error_widget.dart'; import 'package:eatvio_app/core/widgets/loader.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/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/comment_for_consultant_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:eatvio_app/features/diary/presentation/widgets/wakeup_and_retire_widget.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; class DiaryScreen extends StatefulWidget { const DiaryScreen({super.key}); @override State createState() => _DiaryScreenState(); } class _DiaryScreenState extends State { @override Widget build(BuildContext context) { return BlocProvider( create: (BuildContext context) => sl()..fetchDiary(true), child: BlocBuilder( builder: (BuildContext context, DiaryState state) { if (state is DiaryStateLoaded) { log(state.diary.id.toString()); } if (state is DiaryStateError) { return Scaffold( body: DataErrorWidget(onReload: () => context.read().fetchDiary()), ); } return Scaffold( backgroundColor: Colors.grey.shade200, appBar: AppBar( toolbarHeight: 0, ), body: SingleChildScrollView( padding: const EdgeInsets.only(bottom: 16), physics: const BouncingScrollPhysics(), child: Column( children: [ const CalendarWidget(), if (state is DiaryStateLoading) const Loader(), if (state is DiaryStateLoaded) WakeupAndRetireWidget(showRetire: state.diary.typeOfDiary.hasChosenPlan), const SizedBox(height: 12), if (state is DiaryStateLoaded) MealWidget( showMood: state.diary.typeOfDiary.hasChosenPlan, ), if (state is DiaryStateLoaded) const CaloriesChartWidget(), const SizedBox(height: 12), if (state is DiaryStateLoaded && state.diary.typeOfDiary.hasChosenPlan) const CommentForConsultantWidget(), if (state is DiaryStateLoaded && state.diary.closed == 0) Padding( padding: const EdgeInsets.only(top: 12), child: FinishDayButtonWidget( diaryDay: state.diary, ), ), ], ), ), ); }, ), ); } }