import 'package:equatable/equatable.dart'; import '../models/models.dart'; class AppState extends Equatable { final AppScreen currentScreen; final List books; final Book? selectedBook; final Map? prefilledData; final String searchQuery; final bool isLoading; final String? errorMessage; const AppState({ this.currentScreen = AppScreen.library, this.books = const [], this.selectedBook, this.prefilledData, this.searchQuery = '', this.isLoading = false, this.errorMessage, }); AppState copyWith({ AppScreen? currentScreen, List? books, Book? selectedBook, Map? prefilledData, String? searchQuery, bool? isLoading, String? errorMessage, }) { return AppState( currentScreen: currentScreen ?? this.currentScreen, books: books ?? this.books, selectedBook: selectedBook, prefilledData: prefilledData ?? this.prefilledData, searchQuery: searchQuery ?? this.searchQuery, isLoading: isLoading ?? this.isLoading, errorMessage: errorMessage ?? this.errorMessage, ); } @override List get props => [ currentScreen, books, selectedBook, prefilledData, searchQuery, isLoading, errorMessage, ]; }