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
+51
View File
@@ -0,0 +1,51 @@
import 'dart:async';
import 'package:aitrainer_app/model/workout_tree.dart';
import 'package:aitrainer_app/repository/menu_tree_repository.dart';
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:meta/meta.dart';
part 'menu_event.dart';
part 'menu_state.dart';
class MenuBloc extends Bloc<MenuEvent, MenuState> {
final MenuTreeRepository menuTreeRepository;
int parent;
MenuBloc({this.menuTreeRepository}) : super(MenuInitial()) {
parent = 0;
}
@override
Stream<MenuState> mapEventToState(
MenuEvent event,
) async* {
try {
if ( event is MenuCreate ) {
yield MenuLoading();
await menuTreeRepository.createTree();
yield MenuReady();
} else if (event is MenuTreeDown) {
// get child menus or exercises
yield MenuLoading();
parent = event.parent;
menuTreeRepository.getBranch(event.parent);
yield MenuReady();
} else if (event is MenuTreeUp) {
yield MenuLoading();
// get parent menus or exercises
parent = event.parent;
menuTreeRepository.getBranch(parent);
yield MenuReady();
} else if (event is MenuClickExercise) {
yield MenuLoading();
// get exercise page
yield MenuReady();
}
} on Exception catch(ex) {
yield MenuError(message: ex.toString());
}
}
}
+41
View File
@@ -0,0 +1,41 @@
part of 'menu_bloc.dart';
@immutable
abstract class MenuEvent extends Equatable {
const MenuEvent();
@override
List<Object> get props => [];
}
class MenuCreate extends MenuEvent {
const MenuCreate();
@override
List<Object> get props => [];
}
class MenuTreeDown extends MenuEvent {
final int parent;
const MenuTreeDown({this.parent});
@override
List<Object> get props => [parent];
}
class MenuTreeUp extends MenuEvent {
final int parent;
const MenuTreeUp({this.parent});
@override
List<Object> get props => [parent];
}
class MenuClickExercise extends MenuEvent {
final int exerciseTypeId;
const MenuClickExercise({this.exerciseTypeId});
@override
List<Object> get props => [exerciseTypeId];
}
+34
View File
@@ -0,0 +1,34 @@
part of 'menu_bloc.dart';
@immutable
abstract class MenuState extends Equatable {
const MenuState();
@override
List<Object> get props => [];
}
class MenuInitial extends MenuState {
const MenuInitial();
}
class MenuLoading extends MenuState {
}
class MenuReady extends MenuState {
final WorkoutTree workoutTree;
const MenuReady({this.workoutTree});
@override
List<Object> get props => [workoutTree];
}
class MenuError extends MenuState {
final String message;
const MenuError({this.message});
@override
List<Object> get props => [message];
}