import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import '../api/dto/login_dto.dart'; import '../data/local/storage.dart'; class AppStore with ChangeNotifier { ///用户信息 UserInfo? userInfo; ///token String token = ''; //初始化 Future init() async { token = await getToken(); var userInfoStorage = await Storage.get('userInfo'); if (userInfoStorage != null) { userInfo = UserInfo.fromJson(await Storage.get('userInfo')); } notifyListeners(); } ///设置数据 Future setInfo(LoginDto data) async { token = data.accessToken!; userInfo = data.userInfo; await Storage.set('userInfo', userInfo?.toJson()); await Storage.set('token', token); } ///更新用户信息 void updateUserInfo(UserInfo value) async { userInfo = userInfo?.copyWith( name: value.name, avatar: value.avatar, description: value.description, ); await Storage.set('userInfo', userInfo?.toJson()); notifyListeners(); } ///获取token static Future getToken() async { return await Storage.get("token") ?? ''; } ///退出登录 Future logout() async { await Storage.remove('token'); await Storage.remove('userInfo'); token = ''; userInfo = null; notifyListeners(); } }