import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_meals/screens/categories.dart'; import 'package:flutter_meals/screens/filters.dart'; import 'package:flutter_meals/screens/meals.dart'; import 'package:flutter_meals/widgets/main_drawer.dart'; import 'package:flutter_meals/providers/favorites_provider.dart'; import 'package:flutter_meals/providers/filters_provider.dart'; const kInitialFilters = { Filter.glutenFree: false, Filter.lactoseFree: false, Filter.vegetarian: false, Filter.vegan: false }; class TabsScreen extends ConsumerStatefulWidget { const TabsScreen({super.key}); @override ConsumerState createState() { return _TabsScreenState(); } } class _TabsScreenState extends ConsumerState { int _selectedPageIndex = 0; void _selectPage(int index) { setState(() { _selectedPageIndex = index; }); } void _setScreen(String identifier) async { Navigator.of(context).pop(); if (identifier == 'filters') { await Navigator.of(context).push>( MaterialPageRoute( builder: (ctx) => const FiltersScreen(), ), ); } } @override Widget build(BuildContext context) { final availableMeals = ref.watch(filteredMealsProvider); Widget activePage = CategoriesScreen( availableMeals: availableMeals, ); var activePageTitle = 'Categories'; if (_selectedPageIndex == 1) { final favoriteMeals = ref.watch(favoriteMealsProvider); activePage = MealsScreen( meals: favoriteMeals, ); activePageTitle = 'Your Favorites'; } return Scaffold( appBar: AppBar( title: Text(activePageTitle), ), drawer: MainDrawer( onSelectScreen: _setScreen, ), body: activePage, bottomNavigationBar: BottomNavigationBar( onTap: _selectPage, currentIndex: _selectedPageIndex, items: const [ BottomNavigationBarItem( icon: Icon(Icons.set_meal), label: 'Categories', ), BottomNavigationBarItem( icon: Icon(Icons.star), label: 'Favorites', ), ], ), ); } }