import 'dart:convert'; import 'package:shuqi/model/user_model.dart'; import 'package:shuqi/utility/event_bus.dart'; import 'package:shuqi/model/constant.dart'; const String EventUserLogin = 'EventUserLogin'; const String EventUserLogout = 'EventUserLogout'; class UserManager { static UserManager instance = UserManager(); UserModel? user; static UserModel? get currentUser { return UserManager.instance.user; } logout() { this.user = null; preferences.remove('user'); eventBus.emit(EventUserLogout); } login(Map userJson) { var user = UserModel.fromJson(userJson); this.user = user; saveUser(); eventBus.emit(EventUserLogin); } bool get isLogin { return user != null; } loadUserFromLocal() { String? userJson = preferences.getString('user'); if (userJson != null) { user = UserModel.fromJson(json.decode(userJson)); } } void saveUser() async { var data = json.encode(user); preferences.setString('user', data); } }