login_bloc.dart 1.12 KB
import 'package:flutter/foundation.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:wow_english/network/api.dart';
import 'package:wow_english/network/network_manager.dart';

part 'login_event.dart';
part 'login_state.dart';

class LoginBloc extends Bloc<LoginEvent, LoginState> {

  bool _isLogin = false;

  bool get isLogin => _isLogin;

  LoginBloc() : super(LoginInitial()) {
    on<RequestLoginEvent>(_requestLoginApi);
  }


  void _requestLoginApi(RequestLoginEvent event, Emitter<LoginState> emitter) async {
    EasyLoading.show(status: 'loading');
    await DioUtil().requestData(
        Api.testApi,
        successCallBack: (dynamic data){
         EasyLoading.dismiss();
         if (kDebugMode) {
           print(data);
         }
         _isLogin = true;
         emitter(LoginEventChangeState());
        },
        errorCallBack: (dynamic error){
          EasyLoading.dismiss();
          if (kDebugMode) {
            print(error);
          }
          _isLogin = false;
          emitter(LoginEventChangeState());
        });
  }
}