elCaribe app - customization and branding

This commit is contained in:
2025-12-12 19:09:42 -04:00
parent 9e5d0d8ebf
commit ba7deac9f3
402 changed files with 31833 additions and 0 deletions

View 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));
}
}
}