cache_bloc.dart 772 Bytes
import 'package:flutter/cupertino.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:wow_english/models/user_entity.dart';

part 'cache_event.dart';
part 'cache_state.dart';

class CacheBloc extends Bloc<CacheEvent, CacheState> {
  UserEntity? _userEntity;

  UserEntity? get userEntity => _userEntity;

  CacheBloc() : super(CacheInitial()) {
    on<UserInfoChangeEvent>(_userInfoChange);
    on<UserInfoClearEvent>(_userInfoClear);
  }

  void _userInfoChange(UserInfoChangeEvent event,Emitter<CacheState> emitter) async {
    _userEntity = event.userEntity;
    emitter(UserInfoChangeState());
  }

  void _userInfoClear(UserInfoClearEvent event,Emitter<CacheState> emitter) async {
    _userEntity = null;
    emitter(UserInfoClearState());
  }
}