security_provider.dart 878 B

12345678910111213141516171819202122232425262728
  1. import 'package:flutter_riverpod/flutter_riverpod.dart';
  2. import '../core/network/dio_client.dart';
  3. import '../data/models/asset/account_auth.dart';
  4. import '../data/services/withdraw_service.dart';
  5. /// 安全设置认证状态 Provider
  6. /// 页面进入时加载,从绑定页返回时自动刷新
  7. final securityAuthProvider =
  8. AutoDisposeAsyncNotifierProvider<SecurityAuthNotifier, AccountAuth>(
  9. SecurityAuthNotifier.new,
  10. );
  11. class SecurityAuthNotifier extends AutoDisposeAsyncNotifier<AccountAuth> {
  12. @override
  13. Future<AccountAuth> build() => _fetch();
  14. Future<AccountAuth> _fetch() {
  15. final service = WithdrawService(ref.read(dioClientProvider));
  16. return service.getSecuritySetting();
  17. }
  18. /// 手动刷新(从绑定页返回后调用)
  19. Future<void> refresh() async {
  20. state = const AsyncLoading();
  21. state = await AsyncValue.guard(_fetch);
  22. }
  23. }