import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import '../../bloc/app_bloc.dart'; import '../../bloc/app_state.dart'; import '../../../models/models.dart'; import '../library/library_screen.dart'; import '../categories/categories_screen.dart'; import '../book_details/book_details_screen.dart'; import '../add_book/add_book_screen.dart'; import '../scanner/scanner_screen.dart'; import '../wishlist/wishlist_screen.dart'; import '../settings/settings_screen.dart'; import '../../widgets/bottom_nav.dart'; class HomeScreen extends StatelessWidget { const HomeScreen({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: BlocBuilder( builder: (context, state) { final currentScreen = state.currentScreen; final hideNav = [ AppScreen.scanner, AppScreen.details, AppScreen.addBook, ].contains(currentScreen); return Stack( children: [ _buildScreen(context, state), if (!hideNav) Positioned( left: 0, right: 0, bottom: 0, child: BottomNav(currentScreen: currentScreen), ), ], ); }, ), ); } Widget _buildScreen(BuildContext context, AppState state) { switch (state.currentScreen) { case AppScreen.library: return const LibraryScreen(); case AppScreen.categories: return const CategoriesScreen(); case AppScreen.wishlist: return const WishlistScreen(); case AppScreen.settings: return const SettingsScreen(); case AppScreen.details: if (state.selectedBook == null) return const SizedBox(); return BookDetailsScreen(book: state.selectedBook!); case AppScreen.addBook: return AddBookScreen( initialData: state.selectedBook ?? state.prefilledData, ); case AppScreen.scanner: return const ScannerScreen(); } } }