Files
b0esche_cloud/b0esche_cloud/lib/blocs/auth/auth_bloc.dart
2025-12-18 00:02:50 +01:00

39 lines
1.0 KiB
Dart

import 'package:bloc/bloc.dart';
import 'auth_event.dart';
import 'auth_state.dart';
class AuthBloc extends Bloc<AuthEvent, AuthState> {
AuthBloc() : super(AuthInitial()) {
on<LoginRequested>(_onLoginRequested);
on<LogoutRequested>(_onLogoutRequested);
on<CheckAuthRequested>(_onCheckAuthRequested);
}
void _onLoginRequested(LoginRequested event, Emitter<AuthState> emit) async {
emit(AuthLoading());
// Redirect to Go auth/login
// For web, use window.location or url_launcher
// Assume handled in UI
emit(const AuthFailure('Redirect to login URL'));
}
void _onLogoutRequested(
LogoutRequested event,
Emitter<AuthState> emit,
) async {
emit(AuthLoading());
// Call logout API
await Future.delayed(const Duration(milliseconds: 500));
emit(AuthUnauthenticated());
}
void _onCheckAuthRequested(
CheckAuthRequested event,
Emitter<AuthState> emit,
) async {
// Check if token is valid
// For now, assume unauthenticated
emit(AuthUnauthenticated());
}
}