initializeApp method

Future<void> initializeApp()

Initialize the application

Delegates to InitializeAppUseCase for all initialization logic This keeps the Cubit focused on state management only

Implementation

Future<void> initializeApp() async {
  emit(state.copyWith(status: AppStatus.initializing, isLoading: true));

  final result = await _initializeAppUseCase();

  if (result.isSuccess) {
    if (result.shouldShowOnboarding) {
      emit(state.copyWith(
        status: AppStatus.onboardingRequired,
        isLoading: false,
        error: null,
      ));
    } else {
      emit(state.copyWith(
        status: AppStatus.authenticated,
        isLoading: false,
        error: null,
      ));
    }
  } else {
    emit(state.copyWith(
      status: AppStatus.initializationFailed,
      isLoading: false,
      error: result.error,
    ));
  }
}