This commit is contained in:
Dennis Nemec
2026-04-28 13:03:09 +02:00
parent de8668c11a
commit 2470299a10
53 changed files with 2409 additions and 1433 deletions

View File

@ -15,15 +15,13 @@ class AuthBloc extends Bloc<AuthEvent, AuthState> {
: super(Unauthenticated()) {
on<SetAuthenticatedEvent>(_auth);
on<Logout>(_logout);
on<SessionExpiredEvent>(_sessionExpired);
}
Future<void> _auth(
SetAuthenticatedEvent event,
Emitter<AuthState> emit,
) async {
operationBloc.add(LoadOperation());
await Future.delayed(Duration(seconds: 5));
try {
debugPrint("Retrieve user information");
@ -31,7 +29,6 @@ class AuthBloc extends Bloc<AuthEvent, AuthState> {
var state = Authenticated(sessionId: event.sessionId, user: response);
locator.registerSingleton<Authenticated>(state);
emit(state);
operationBloc.add(FinishOperation());
} catch (err, st) {
debugPrint("Failed to retrieve user information");
debugPrint(err.toString());
@ -46,6 +43,19 @@ class AuthBloc extends Bloc<AuthEvent, AuthState> {
}
Future<void> _logout(Logout event, Emitter<AuthState> emit) async {
if (locator.isRegistered<Authenticated>()) {
locator.unregister<Authenticated>();
}
emit(Unauthenticated());
}
Future<void> _sessionExpired(
SessionExpiredEvent event,
Emitter<AuthState> emit,
) async {
if (locator.isRegistered<Authenticated>()) {
locator.unregister<Authenticated>();
}
emit(Unauthenticated(sessionExpired: true));
}
}

View File

@ -10,4 +10,6 @@ class Logout extends AuthEvent {
String username;
Logout({required this.username});
}
}
class SessionExpiredEvent extends AuthEvent {}

View File

@ -2,7 +2,11 @@ import 'package:hl_lieferservice/feature/authentication/model/user.dart';
abstract class AuthState {}
class Unauthenticated extends AuthState {}
class Unauthenticated extends AuthState {
final bool sessionExpired;
Unauthenticated({this.sessionExpired = false});
}
class Authenticated extends AuthState {
User user;
String sessionId;