import 'package:flutter/widgets.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:wow_english/common/core/user_util.dart'; import 'package:wow_english/common/request/dao/user_dao.dart'; import 'package:wow_english/models/user_entity.dart'; import 'package:wow_english/pages/user/modify/modify_user_information_page.dart'; import 'package:wow_english/utils/log_util.dart'; part 'user_event.dart'; part 'user_state.dart'; class UserBloc extends Bloc { final TextEditingController modifyTextController = TextEditingController(); UserBloc() : super(UserInitial()) { on(_logout); on(_updateUser); } void _logout(UserLogout event, Emitter emitter) async { await UserDao.logout(); } void _updateUser(UserUpdate event, Emitter emitter) async { Log.d('_updateUser, event: ${event.type}, emitter.isDone: ${emitter.isDone}, text=${modifyTextController.text}'); UserEntity user = UserUtil.getUser()!; switch (event.type) { case ModifyUserInformationType.avatar: break; case ModifyUserInformationType.name: String name = modifyTextController.text; user.name = name; try { await UserDao.updateUserInfo(user); emitter(UserInfoUpdated()); } catch (e) { print(e); } break; case ModifyUserInformationType.age: String age = modifyTextController.text; break; case ModifyUserInformationType.gender: break; } } }