import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:news/data/models/CategoryModel.dart'; import 'package:news/data/models/TagModel.dart'; import 'package:news/data/models/appLanguageModel.dart'; import 'package:news/data/models/locationCityModel.dart'; abstract class BottomSheetEvent {} class UpdateBottomSheetContent extends BottomSheetEvent { final List newData; final List newTagsData; final List newLanguagesData; UpdateBottomSheetContent(this.newData, this.newTagsData, this.newLanguagesData); } // Define the state for your bottom sheet Cubit class BottomSheetState { final List locationData; final List tagsData; final List languageData; final List categoryData; BottomSheetState(this.locationData, this.tagsData, this.languageData, this.categoryData); } // Define the Cubit itself class BottomSheetCubit extends Cubit { BottomSheetCubit() : super(BottomSheetState([], [], [], [])); // Access the data field within the cubit List currentLocationData = []; List currentTagData = []; List currentLanguageData = []; List currentCategoryData = []; getAllLatestContent({required bool isTag, required bool isLocation, required bool isLanguage, required bool isCategory}) { if (!isLocation) currentLocationData = state.locationData; if (!isTag) currentTagData = state.tagsData; if (!isLanguage) currentLanguageData = state.languageData; if (!isCategory) currentCategoryData = state.categoryData; } void updateLocationContent(List newData) { getAllLatestContent(isTag: false, isLocation: true, isLanguage: false, isCategory: false); emit(BottomSheetState(newData, currentTagData, currentLanguageData, currentCategoryData)); } void updateTagsContent(List newTagsData) { getAllLatestContent(isTag: true, isLocation: false, isLanguage: false, isCategory: false); emit(BottomSheetState(currentLocationData, newTagsData, currentLanguageData, currentCategoryData)); } void updateLanguageContent(List newLanguagesData) { getAllLatestContent(isTag: false, isLocation: false, isLanguage: true, isCategory: false); emit(BottomSheetState(currentLocationData, currentTagData, newLanguagesData, currentCategoryData)); } void updateCategoryContent(List newCategoryData) { getAllLatestContent(isTag: false, isLocation: false, isLanguage: false, isCategory: true); emit(BottomSheetState(currentLocationData, currentTagData, currentLanguageData, newCategoryData)); } }