elCaribe app - customization and branding
This commit is contained in:
76
news-app/lib/cubits/getUserDraftedNewsCubit.dart
Normal file
76
news-app/lib/cubits/getUserDraftedNewsCubit.dart
Normal file
@@ -0,0 +1,76 @@
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:news/data/models/NewsModel.dart';
|
||||
import 'package:news/utils/api.dart';
|
||||
import 'package:news/utils/strings.dart';
|
||||
|
||||
abstract class GetUserDraftedNewsState {}
|
||||
|
||||
class GetUserDraftedNewsInitial extends GetUserDraftedNewsState {}
|
||||
|
||||
class GetUserDraftedNewsFetchInProgress extends GetUserDraftedNewsState {}
|
||||
|
||||
class GetUserDraftedNewsFetchSuccess extends GetUserDraftedNewsState {
|
||||
final List<NewsModel> GetUserDraftedNews;
|
||||
final int totalGetUserDraftedNewsCount;
|
||||
final bool hasMoreFetchError;
|
||||
final bool hasMore;
|
||||
|
||||
GetUserDraftedNewsFetchSuccess({required this.GetUserDraftedNews, required this.totalGetUserDraftedNewsCount, required this.hasMoreFetchError, required this.hasMore});
|
||||
}
|
||||
|
||||
class GetUserDraftedNewsFetchFailure extends GetUserDraftedNewsState {
|
||||
final String errorMessage;
|
||||
|
||||
GetUserDraftedNewsFetchFailure(this.errorMessage);
|
||||
}
|
||||
|
||||
class GetUserDraftedNewsCubit extends Cubit<GetUserDraftedNewsState> {
|
||||
GetUserDraftedNewsCubit() : super(GetUserDraftedNewsInitial());
|
||||
|
||||
void getGetUserDraftedNews({int? userId}) async {
|
||||
try {
|
||||
emit(GetUserDraftedNewsFetchInProgress());
|
||||
final apiUrl = "${Api.getDraftNewsApi}/${userId}";
|
||||
final result = await Api.sendApiRequest(body: null, url: apiUrl);
|
||||
(!result[ERROR])
|
||||
? emit(GetUserDraftedNewsFetchSuccess(
|
||||
GetUserDraftedNews: (result[DATA][NEWS][DATA] as List).map((e) => NewsModel.fromJson(e)).toList(),
|
||||
totalGetUserDraftedNewsCount: result[DATA][NEWS][TOTAL],
|
||||
hasMoreFetchError: false,
|
||||
hasMore: (result[DATA][NEWS][DATA] as List).length < result[DATA][NEWS][TOTAL]))
|
||||
: emit(GetUserDraftedNewsFetchFailure(result[MESSAGE]));
|
||||
} catch (e) {
|
||||
emit(GetUserDraftedNewsFetchFailure(e.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
bool hasMoreGetUserDraftedNews() {
|
||||
return (state is GetUserDraftedNewsFetchSuccess) ? (state as GetUserDraftedNewsFetchSuccess).hasMore : false;
|
||||
}
|
||||
|
||||
void deleteNews(int index) {
|
||||
if (state is GetUserDraftedNewsFetchSuccess) {
|
||||
List<NewsModel> newsList = List.from((state as GetUserDraftedNewsFetchSuccess).GetUserDraftedNews)..removeAt(index);
|
||||
|
||||
emit(GetUserDraftedNewsFetchSuccess(
|
||||
GetUserDraftedNews: newsList,
|
||||
hasMore: (state as GetUserDraftedNewsFetchSuccess).hasMore,
|
||||
hasMoreFetchError: false,
|
||||
totalGetUserDraftedNewsCount: (state as GetUserDraftedNewsFetchSuccess).totalGetUserDraftedNewsCount - 1));
|
||||
}
|
||||
}
|
||||
|
||||
void deleteImageId(int index) {
|
||||
if (state is GetUserDraftedNewsFetchSuccess) {
|
||||
List<NewsModel> newsList = (state as GetUserDraftedNewsFetchSuccess).GetUserDraftedNews;
|
||||
|
||||
newsList[index].imageDataList!.removeAt(index);
|
||||
|
||||
emit(GetUserDraftedNewsFetchSuccess(
|
||||
GetUserDraftedNews: newsList,
|
||||
hasMore: (state as GetUserDraftedNewsFetchSuccess).hasMore,
|
||||
hasMoreFetchError: false,
|
||||
totalGetUserDraftedNewsCount: (state as GetUserDraftedNewsFetchSuccess).totalGetUserDraftedNewsCount));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user