import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:meals/providers/favorites_provider.dart'; import 'package:meals/screens/CategoriesScreen.dart'; import 'package:meals/screens/MealsScreen.dart'; import 'package:meals/screens/filters.dart'; import 'package:meals/widgets/main_drawer.dart'; import '../providers/filters_provider.dart'; class TabsScreen extends ConsumerStatefulWidget { const TabsScreen({Key? key}) : super(key: key); @override ConsumerState createState() => _TabsScreenState(); } class _TabsScreenState extends ConsumerState { int _selectedPageIndex = 0; void _selectPage(int index) { setState(() { _selectedPageIndex = index; }); } void _setScreen(String identifier) async { Navigator.of(context).pop(); switch (identifier) { case 'filters': await Navigator.of(context).push>( MaterialPageRoute(builder: (ctx) => const FiltersScreen())); break; } } @override Widget build(BuildContext context) { Widget activePage; String? activePageTitle; final availableMeals = ref.watch(filteredMealsProvider); switch (_selectedPageIndex) { case 1: activePageTitle = 'Favorites'; activePage = MealsScreen( meals: ref.watch(favoriteMealsProvider), ); break; default: activePageTitle = 'Pick your category'; activePage = CategoriesScreen( availableMeals: availableMeals, ); } 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'), ], ), ); } }