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_screen.dart'; import 'categories_screen.dart'; import 'book_details_screen.dart'; import 'add_book_screen.dart'; import 'scanner_screen.dart'; import 'wishlist_screen.dart'; import '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(); } } }