cargo66/lib/application/splash_cubit/splash_cubit.dart

32 lines
889 B
Dart

import 'package:flutter_bloc/flutter_bloc.dart';
import '../../core/usecases/usecases.dart';
import '../../domain/usecases/splash/splash_usecase.dart';
// Define the states
abstract class SplashState {}
class SplashInitial extends SplashState {}
class NavigateToSplash2 extends SplashState {}
class NavigateToRoot extends SplashState {}
class SplashCubit extends Cubit<SplashState> {
final SplashUseCase _splashUseCase;
SplashCubit(this._splashUseCase) : super(SplashInitial());
Future<void> checkToken() async {
await Future.delayed(const Duration(seconds: 1)); // Simulating some loading time
try {
final result = await _splashUseCase(NoParams());
result.fold((failure) => emit(NavigateToSplash2()), (result) {
result ? emit(NavigateToRoot()) : emit(NavigateToSplash2());
});
} catch (e) {
emit(NavigateToSplash2());
}
}
}