import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:news/data/models/BreakingNewsModel.dart'; import 'package:news/data/repositories/BreakingNews/breakNewsRepository.dart'; import 'package:news/utils/strings.dart'; abstract class BreakingNewsState {} class BreakingNewsInitial extends BreakingNewsState {} class BreakingNewsFetchInProgress extends BreakingNewsState {} class BreakingNewsFetchSuccess extends BreakingNewsState { final List breakingNews; BreakingNewsFetchSuccess({required this.breakingNews}); } class BreakingNewsFetchFailure extends BreakingNewsState { final String errorMessage; BreakingNewsFetchFailure(this.errorMessage); } class BreakingNewsCubit extends Cubit { final BreakingNewsRepository _breakingNewsRepository; BreakingNewsCubit(this._breakingNewsRepository) : super(BreakingNewsInitial()); Future> getBreakingNews({required String langId}) async { emit(BreakingNewsFetchInProgress()); try { final result = await _breakingNewsRepository.getBreakingNews(langId: langId); (!result[ERROR]) ? emit(BreakingNewsFetchSuccess(breakingNews: result['BreakingNews'])) : emit(BreakingNewsFetchFailure(result[MESSAGE])); return (!result[ERROR]) ? result['BreakingNews'] : []; } catch (e) { emit(BreakingNewsFetchFailure(e.toString())); return []; } } }