import 'package:flutter_bloc/flutter_bloc.dart'; import 'scanner_event.dart'; import 'scanner_state.dart'; class ScannerBloc extends Bloc { ScannerBloc() : super(ScannerState.initial()) { on(_onStartScanning); on(_onStopScanning); on(_onBookDetected); on(_onClearDetectedBook); } void _onStartScanning(StartScanning event, Emitter emit) { emit(state.copyWith( isScanning: true, isProcessing: false, errorMessage: null, )); } void _onStopScanning(StopScanning event, Emitter emit) { emit(state.copyWith(isScanning: false)); } void _onBookDetected(BookDetected event, Emitter emit) { emit(state.copyWith( detectedBookData: event.bookData, isProcessing: true, isScanning: false, )); } void _onClearDetectedBook(ClearDetectedBook event, Emitter emit) { emit(state.copyWith( isScanning: false, clearDetectedBookData: true, isProcessing: false, )); } }