import 'package:eatvio_app/core/widgets/data_error_widget.dart'; import 'package:eatvio_app/core/widgets/loader.dart'; import 'package:eatvio_app/features/feed/presentation/bloc/recipes_cubit/recipes_cubit.dart'; import 'package:eatvio_app/features/feed/presentation/bloc/recipes_cubit/recipes_state.dart'; import 'package:eatvio_app/features/feed/presentation/widgets/recipes_widget.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; class Recipes extends StatelessWidget { const Recipes({super.key}); @override Widget build(BuildContext context) { return RefreshIndicator( onRefresh: () => context.read().loadRecipesList(), child: BlocBuilder( builder: (BuildContext context, RecipesState state) { if (state.isLoading) { return Scaffold( backgroundColor: Colors.grey.shade200, body: const Loader(), ); } if (state.errorMessage != null) { return DataErrorWidget( onReload: () async { context.read().loadRecipesList(); }, ); } return ListView.separated( padding: EdgeInsets.symmetric(vertical: 8), shrinkWrap: true, physics: BouncingScrollPhysics(), itemBuilder: (context, index) { return RecipesWidget( recipe: state.recipesList[index], index: index, ); }, separatorBuilder: (context, index) { return SizedBox(height: 8); }, itemCount: state.recipesList.length, ); }, ), ); } }