import 'dart:async'; import 'package:aitrainer_app/repository/customer_repository.dart'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:meta/meta.dart'; part 'customer_change_event.dart'; part 'customer_change_state.dart'; class CustomerChangeBloc extends Bloc { final CustomerRepository customerRepository; CustomerChangeBloc({this.customerRepository}) : super(CustomerChangeInitial()); @override Stream mapEventToState( CustomerChangeEvent event, ) async* { try { if (event is CustomerGoalChange) { customerRepository.setGoal(event.goal); yield CustomerDataChanged(); } else if (event is CustomerFitnessChange) { customerRepository.setFitnessLevel(event.fitness); yield CustomerDataChanged(); } else if (event is CustomerBodyTypeChange) { customerRepository.setBodyType(event.bodyType); yield CustomerDataChanged(); } else if (event is CustomerSave) { yield CustomerSaving(); await customerRepository.saveCustomer(); yield CustomerSaveSuccess(); } } on Exception catch(e) { yield CustomerSaveError(message: e.toString()); } } }