initializeApp method
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,
));
}
}