|
- import 'dart:async';
-
- import 'package:bloc/bloc.dart';
- import 'package:equatable/equatable.dart';
- import 'package:farm_tpf/data/api/app_exception.dart';
- import 'package:farm_tpf/data/repository/repository.dart';
- import 'package:meta/meta.dart';
-
- part 'plot_parameter_event.dart';
- part 'plot_parameter_state.dart';
-
- class PlotParameterBloc extends Bloc<PlotParameterEvent, PlotParameterState> {
- final Repository repository;
- PlotParameterBloc({@required this.repository})
- : super(PlotParameterInitial());
- static int pageSize = 20;
-
- @override
- Stream<PlotParameterState> mapEventToState(
- PlotParameterEvent event,
- ) async* {
- if (event is DataFetched &&
- !(state is PlotParameterSuccess &&
- (state as PlotParameterSuccess).hasReachedMax)) {
- try {
- if (state is PlotParameterInitial) {
- yield PlotParameterLoading();
- final response = await repository.getEnvironmentParameters(
- cropId: event.cropId, page: 0, size: pageSize);
- yield PlotParameterSuccess(
- items: response,
- page: 0,
- hasReachedMax: response.length < pageSize ? true : false);
- }
- //TODO: check paging api
- // if (state is PlotParameterSuccess) {
- // final currentState = state as PlotParameterSuccess;
- // int page = currentState.page + 1;
- // final response = await repository.getEnvironmentParameters(
- // cropId: event.cropId, page: page, size: pageSize);
- // yield response.isEmpty
- // ? currentState.copyWith(hasReachedMax: true)
- // : PlotParameterSuccess(
- // items: currentState.items + response,
- // page: currentState.page + 1,
- // hasReachedMax: false);
- // }
- } catch (e) {
- var errorString = AppException.handleError(e);
- yield PlotParameterFailure(errorString: errorString);
- }
- }
- if (event is OnRefresh) {
- try {
- yield PlotParameterLoading();
- final response = await repository.getEnvironmentParameters(
- cropId: event.cropId, page: 0, size: pageSize);
- yield PlotParameterSuccess(
- items: response,
- page: 0,
- hasReachedMax: response.length < pageSize ? true : false);
- } catch (e) {
- yield PlotParameterFailure(errorString: AppException.handleError(e));
- }
- }
- }
- }
|