wt1.1a flutter_bloc
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
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<CustomerChangeEvent, CustomerChangeState> {
|
||||
final CustomerRepository customerRepository;
|
||||
CustomerChangeBloc({this.customerRepository}) : super(CustomerChangeInitial());
|
||||
|
||||
@override
|
||||
Stream<CustomerChangeState> 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());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
part of 'customer_change_bloc.dart';
|
||||
|
||||
@immutable
|
||||
abstract class CustomerChangeEvent extends Equatable {
|
||||
const CustomerChangeEvent();
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class CustomerGoalChange extends CustomerChangeEvent {
|
||||
final String goal;
|
||||
const CustomerGoalChange({this.goal});
|
||||
|
||||
@override
|
||||
List<Object> get props => [goal];
|
||||
}
|
||||
|
||||
class CustomerFitnessChange extends CustomerChangeEvent {
|
||||
final String fitness;
|
||||
const CustomerFitnessChange({this.fitness});
|
||||
|
||||
@override
|
||||
List<Object> get props => [fitness];
|
||||
}
|
||||
|
||||
class CustomerBodyTypeChange extends CustomerChangeEvent {
|
||||
final String bodyType;
|
||||
const CustomerBodyTypeChange({this.bodyType});
|
||||
|
||||
@override
|
||||
List<Object> get props => [bodyType];
|
||||
}
|
||||
|
||||
class CustomerSave extends CustomerChangeEvent {
|
||||
const CustomerSave();
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
part of 'customer_change_bloc.dart';
|
||||
|
||||
@immutable
|
||||
abstract class CustomerChangeState extends Equatable {
|
||||
const CustomerChangeState();
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class CustomerChangeInitial extends CustomerChangeState {
|
||||
const CustomerChangeInitial();
|
||||
}
|
||||
|
||||
class CustomerSaving extends CustomerChangeState {
|
||||
const CustomerSaving();
|
||||
}
|
||||
|
||||
class CustomerDataChanged extends CustomerChangeState {
|
||||
const CustomerDataChanged();
|
||||
}
|
||||
|
||||
class CustomerSaveSuccess extends CustomerChangeState {
|
||||
const CustomerSaveSuccess();
|
||||
}
|
||||
|
||||
class CustomerSaveError extends CustomerChangeState {
|
||||
final String message;
|
||||
const CustomerSaveError({this.message});
|
||||
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
}
|
||||
Reference in New Issue
Block a user