import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../core/api/api_providers.dart'; import '../../../core/platform/platform_providers.dart'; import 'auth_repository.dart'; final authRepositoryProvider = Provider((ref) { return AuthRepository( ref.watch(apiClientProvider), ref.watch(tokenStorageProvider), ); }); final authStateProvider = AsyncNotifierProvider(() { return AuthNotifier(); }); class AuthNotifier extends AsyncNotifier { @override Future build() async { return ref.watch(authRepositoryProvider).getToken(); } Future login(String username, String password) async { state = const AsyncLoading(); state = await AsyncValue.guard( () => ref.read(authRepositoryProvider).login(username, password), ); } Future logout() async { await ref.read(authRepositoryProvider).logout(); state = const AsyncData(null); } }