Advertisement
rifki_cs29

ProductListBloc

Mar 4th, 2022
1,045
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 1.40 KB | None | 0 0
  1. import 'package:bloc/bloc.dart';
  2. import 'package:equatable/equatable.dart';
  3. import 'package:module_category/domain/entities/category_product_list.dart';
  4. import 'package:module_category/domain/usecases/get_category_product_list.dart';
  5. import 'package:module_core/common/state_enum.dart';
  6.  
  7. part 'category_product_list_event.dart';
  8. part 'category_product_list_state.dart';
  9.  
  10. class CategoryProductListBloc
  11.     extends Bloc<CategoryProductListEvent, CategoryProductListState> {
  12.   final GetCategoryProductList _getCategoryProductList;
  13.   CategoryProductListBloc(this._getCategoryProductList)
  14.       : super(CategoryProductListState.initial()) {
  15.     on<FetchCategoryProductList>(
  16.       (event, emit) async {
  17.         final slug = event.slug;
  18.         emit(state.copyWith(state: RequestState.Loading));
  19.         final result = await _getCategoryProductList.execute(slug);
  20.  
  21.         result.fold(
  22.           (failure) => emit(state.copyWith(
  23.               state: RequestState.Error, errorMessage: failure.message)),
  24.           (categoryProductList) {
  25.             emit(state.copyWith(
  26.                 state: RequestState.Loaded, data: categoryProductList));
  27.             if (categoryProductList.response.data.isEmpty) {
  28.               emit(state.copyWith(
  29.                   state: RequestState.Empty,
  30.                   errorMessage: 'Empty Category Product'));
  31.             }
  32.           },
  33.         );
  34.       },
  35.     );
  36.   }
  37. }
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement