- Fixed test file import paths to point to correct Bloc file locations - Fixed Bloc file import paths for models (../../../models/models.dart) - Added explicit type annotations to resolve null safety warnings - Fixed null safety issues in wishlist_bloc_test.dart - All 70 tests now passing
40 lines
1.1 KiB
Dart
40 lines
1.1 KiB
Dart
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'scanner_event.dart';
|
|
import 'scanner_state.dart';
|
|
|
|
class ScannerBloc extends Bloc<ScannerEvent, ScannerState> {
|
|
ScannerBloc() : super(ScannerState.initial()) {
|
|
on<StartScanning>(_onStartScanning);
|
|
on<StopScanning>(_onStopScanning);
|
|
on<BookDetected>(_onBookDetected);
|
|
on<ClearDetectedBook>(_onClearDetectedBook);
|
|
}
|
|
|
|
void _onStartScanning(StartScanning event, Emitter<ScannerState> emit) {
|
|
emit(state.copyWith(
|
|
isScanning: true,
|
|
isProcessing: false,
|
|
errorMessage: null,
|
|
));
|
|
}
|
|
|
|
void _onStopScanning(StopScanning event, Emitter<ScannerState> emit) {
|
|
emit(state.copyWith(isScanning: false));
|
|
}
|
|
|
|
void _onBookDetected(BookDetected event, Emitter<ScannerState> emit) {
|
|
emit(state.copyWith(
|
|
detectedBookData: event.bookData,
|
|
isProcessing: true,
|
|
isScanning: false,
|
|
));
|
|
}
|
|
|
|
void _onClearDetectedBook(ClearDetectedBook event, Emitter<ScannerState> emit) {
|
|
emit(state.copyWith(
|
|
isScanning: false,
|
|
clearDetectedBookData: true,
|
|
isProcessing: false,
|
|
));
|
|
}
|
|
} |