import 'package:bloc/bloc.dart'; import 'package:kmobile/api/services/user_service.dart'; import 'package:kmobile/core/errors/exceptions.dart'; import '../../../data/repositories/auth_repository.dart'; import 'auth_state.dart'; class AuthCubit extends Cubit { final AuthRepository _authRepository; final UserService _userService; AuthCubit(this._authRepository, this._userService) : super(AuthInitial()) { checkAuthStatus(); } Future checkAuthStatus() async { emit(AuthLoading()); try { final isLoggedIn = await _authRepository.isLoggedIn(); if (isLoggedIn) { final users = await _userService.getUserDetails(); emit(Authenticated(users)); } else { emit(Unauthenticated()); } } catch (e) { emit(AuthError(e.toString())); } } Future refreshUserData() async { try { // emit(AuthLoading()); final users = await _userService.getUserDetails(); emit(Authenticated(users)); } catch (e) { emit(AuthError('Failed to refresh user data: ${e.toString()}')); // Optionally, re-emit the previous state or handle as needed } } Future login(String customerNo, String password) async { emit(AuthLoading()); try { final users = await _authRepository.login(customerNo, password); emit(Authenticated(users)); } catch (e) { emit(AuthError(e is AuthException ? e.message : e.toString())); } } }