workouttest_app/lib/bloc/exercise_log/exercise_log_bloc.dart
2020-10-21 15:08:15 +02:00

35 lines
1.1 KiB
Dart

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<ExerciseLogEvent, ExerciseLogState> {
final ExerciseRepository exerciseRepository;
@override
ExerciseLogBloc({this.exerciseRepository}) : super(ExerciseLogInitial());
@override
Stream<ExerciseLogState> 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());
}
}
}