bloc.dart 896 Bytes
import 'package:bloc/bloc.dart';

import '../../common/request/dao/home_dao.dart';
import '../../common/request/exception.dart';
import '../../models/course_unit_entity.dart';
import '../../utils/loading.dart';
import '../../utils/toast_util.dart';
import 'event.dart';
import 'state.dart';

class UnitBloc extends Bloc<UnitEvent, UnitState> {

  CourseUnitEntity? _modelData;

  CourseUnitEntity? get modelData => _modelData;


  UnitBloc() : super(UnitState().init()) {
    on<RequestUnitDataEvent>(_requestData);
  }

  void _requestData(RequestUnitDataEvent event, Emitter<UnitState> emitter) async {
    try {
      await loading(() async {
        _modelData = await HomeDao.courseUnit(event.moduleId);
        emitter(UnitDataLoadState());
      });
    } catch (e) {
      if (e is ApiException) {
        showToast(e.message ?? '请求失败,请检查网络连接');
      }
    }
  }
}