feat:implementacion grafica 2.0
This commit is contained in:
56
lib/features/auth/presentation/bloc/auth_state.dart
Normal file
56
lib/features/auth/presentation/bloc/auth_state.dart
Normal file
@@ -0,0 +1,56 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
import '../../domain/entities/auth_user.dart';
|
||||
|
||||
/// Estados posibles del [AuthBloc].
|
||||
/// Usando sealed class para exhaustividad en switch expressions (Dart 3+).
|
||||
sealed class AuthState extends Equatable {
|
||||
const AuthState();
|
||||
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
/// Estado inicial antes de cualquier verificación.
|
||||
final class AuthInitial extends AuthState {
|
||||
const AuthInitial();
|
||||
}
|
||||
|
||||
/// Verificando si existe sesión almacenada (al inicio de la app).
|
||||
final class AuthCheckingSession extends AuthState {
|
||||
const AuthCheckingSession();
|
||||
}
|
||||
|
||||
/// Proceso de login o logout en curso.
|
||||
final class AuthLoading extends AuthState {
|
||||
const AuthLoading();
|
||||
}
|
||||
|
||||
/// Usuario autenticado exitosamente. Contiene el usuario y su token JWT.
|
||||
final class AuthAuthenticated extends AuthState {
|
||||
final AuthUser user;
|
||||
|
||||
const AuthAuthenticated({required this.user});
|
||||
|
||||
/// Expone el token para su uso en headers HTTP futuros.
|
||||
String get bearerToken => 'Bearer ${user.token}';
|
||||
|
||||
@override
|
||||
List<Object?> get props => [user];
|
||||
}
|
||||
|
||||
/// No autenticado (estado limpio, sin sesión).
|
||||
final class AuthUnauthenticated extends AuthState {
|
||||
const AuthUnauthenticated();
|
||||
}
|
||||
|
||||
/// Error durante la autenticación.
|
||||
final class AuthFailure extends AuthState {
|
||||
final String message;
|
||||
final String? errorCode;
|
||||
|
||||
const AuthFailure({required this.message, this.errorCode});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [message, errorCode];
|
||||
}
|
||||
Reference in New Issue
Block a user