You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.7 KiB

// import 'dart:async';
import 'package:bytedesk_kefu/blocs/help_bloc/bloc.dart';
import 'package:bytedesk_kefu/model/helpArticle.dart';
import 'package:bytedesk_kefu/model/helpCategory.dart';
import 'package:bytedesk_kefu/repositories/help_repository.dart';
import 'package:bytedesk_kefu/util/bytedesk_utils.dart';
import 'package:bloc/bloc.dart';
class HelpBloc extends Bloc<HelpEvent, HelpState> {
//
final HelpRepository helpRepository = new HelpRepository();
HelpBloc() : super(new UnHelpState()) {
on<GetHelpCategoryEvent>(_mapGetHelpCategoryToState);
on<GetHelpArticleEvent>(_mapGetHelpArticleState);
}
// @override
// Stream<HelpState> mapEventToState(HelpEvent event) async* {
// if (event is GetHelpCategoryEvent) {
// yield* _mapGetHelpCategoryToState(event);
// } else if (event is GetHelpArticleEvent) {
// yield* _mapGetHelpArticleState(event);
// }
// }
void _mapGetHelpCategoryToState(
GetHelpCategoryEvent event, Emitter<HelpState> emit) async {
emit(HelpLoading());
try {
final List<HelpCategory> categoryList =
await helpRepository.getHelpCategories(event.uid);
emit(HelpCategoryState(categoryList));
} catch (error) {
BytedeskUtils.printLog(error);
emit(HelpLoadError());
}
}
void _mapGetHelpArticleState(
GetHelpArticleEvent event, Emitter<HelpState> emit) async {
emit(HelpLoading());
try {
final List<HelpArticle> categoryList =
await helpRepository.getCategoryArticles(event.categoryId);
emit(HelpArticleState(categoryList));
} catch (error) {
BytedeskUtils.printLog(error);
emit(HelpLoadError());
}
}
}