26 lines
938 B
Dart
26 lines
938 B
Dart
// invite_provider.dart — 邀请信息状态装配:复用 apiClientProvider,未登录不打网络。
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
|
|
import '../services/invite_api.dart';
|
|
import 'account_providers.dart';
|
|
import 'auth_provider.dart';
|
|
|
|
final inviteApiProvider = Provider<InviteApi>((ref) => InviteApi(ref.watch(apiClientProvider)));
|
|
|
|
class InviteNotifier extends AsyncNotifier<InviteInfo?> {
|
|
@override
|
|
Future<InviteInfo?> build() async {
|
|
// 未登录返回 null(不打网络);已登录拉取。
|
|
final token = ref.watch(authProvider).accessToken;
|
|
if (token == null || token.isEmpty) return null;
|
|
return ref.read(inviteApiProvider).fetch();
|
|
}
|
|
|
|
Future<void> refresh() async {
|
|
state = const AsyncLoading();
|
|
state = await AsyncValue.guard(() => ref.read(inviteApiProvider).fetch());
|
|
}
|
|
}
|
|
|
|
final inviteProvider = AsyncNotifierProvider<InviteNotifier, InviteInfo?>(InviteNotifier.new);
|