feat(client): invite api + provider + auth_api.register 加 inviteCode
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
// 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);
|
||||
Reference in New Issue
Block a user