import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; import '../../features/auth/domain/entities/user.dart'; import '../../features/auth/presentation/providers/auth_providers.dart'; part 'auth_provider.g.dart'; @Riverpod(keepAlive: true) class AuthState extends _$AuthState { @override FutureOr build() async { final repository = ref.read(authRepositoryProvider); final isLoggedIn = await repository.isLoggedIn(); if (isLoggedIn) { return repository.getCurrentUser(); } return null; } void setUser(User user) { state = AsyncData(user); } void clearUser() { state = const AsyncData(null); } Future logout() async { final repository = ref.read(authRepositoryProvider); await repository.logout(); state = const AsyncData(null); } }