import 'dart:async'; import 'package:aitrainer_app/model/exercise.dart'; import 'package:aitrainer_app/repository/exercise_repository.dart'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:meta/meta.dart'; part 'exercise_log_event.dart'; part 'exercise_log_state.dart'; class ExerciseLogBloc extends Bloc { final ExerciseRepository exerciseRepository; @override ExerciseLogBloc({this.exerciseRepository}) : super(ExerciseLogInitial()); @override Stream mapEventToState(ExerciseLogEvent event) async* { try { if (event is ExerciseLogLoad) { yield ExerciseLogLoading(); yield ExerciseLogReady(); } else if ( event is ExerciseLogDelete ) { yield ExerciseLogLoading(); exerciseRepository.exerciseList.remove(event.exercise); await exerciseRepository.deleteExercise(event.exercise); yield ExerciseLogReady(); } } on Exception catch (e) { yield ExerciseLogError(message: e.toString()); } } }