wt1.1a flutter_bloc

This commit is contained in:
Bossanyi Tibor
2020-08-17 12:38:47 +02:00
parent 8363d7772f
commit ac1c6be8f3
90 changed files with 4281 additions and 2854 deletions
@@ -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];
}