Files
flutter-frame/lib/shared/providers/auth_provider.dart
2026-03-01 07:55:59 +09:00

35 lines
879 B
Dart

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<User?> 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<void> logout() async {
final repository = ref.read(authRepositoryProvider);
await repository.logout();
state = const AsyncData(null);
}
}