mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-08-25 20:19:39 +00:00
profile page fix bugs
This commit is contained in:
@ -24,8 +24,10 @@ class ProfileBloc extends Bloc<ProfileEvent, ProfileState> {
|
||||
String regionSelected = '';
|
||||
final TextEditingController searchController = TextEditingController();
|
||||
final TextEditingController nameController = TextEditingController(text: '${HomeCubit.user!.firstName} ${HomeCubit.user!.lastName}');
|
||||
List<TimeZone>? timeZoneList;
|
||||
List<RegionModel>? regionList;
|
||||
|
||||
|
||||
List<RegionModel> allRegions = [];
|
||||
List<TimeZone> allTimeZone = [];
|
||||
|
||||
|
||||
ProfileBloc() : super(InitialState()) {
|
||||
@ -90,9 +92,9 @@ class ProfileBloc extends Bloc<ProfileEvent, ProfileState> {
|
||||
Future _fetchTimeZone(TimeZoneInitialEvent event, Emitter<ProfileState> emit) async {
|
||||
emit(LoadingInitialState());
|
||||
try {
|
||||
timeZoneList = await ProfileApi.fetchTimeZone();
|
||||
emit(UpdateState(timeZoneList: timeZoneList!));
|
||||
return timeZoneList;
|
||||
allTimeZone = await ProfileApi.fetchTimeZone();
|
||||
emit(TimeZoneLoadedState(timezone: allTimeZone));
|
||||
return allTimeZone;
|
||||
} catch (e) {
|
||||
emit(FailedState(errorMessage: e.toString()));
|
||||
return;
|
||||
@ -123,33 +125,36 @@ class ProfileBloc extends Bloc<ProfileEvent, ProfileState> {
|
||||
}
|
||||
}
|
||||
|
||||
Future searchRegion(SearchRegionEvent event, Emitter<ProfileState> emit) async {
|
||||
|
||||
Future<void> searchRegion(SearchRegionEvent event, Emitter<ProfileState> emit) async {
|
||||
emit(LoadingInitialState());
|
||||
final query = event.query.toLowerCase();
|
||||
if(event.query.isNotEmpty){
|
||||
final filteredRegions = regionList?.where((region) {
|
||||
if (allRegions.isEmpty) {
|
||||
allRegions = await ProfileApi.fetchRegion();
|
||||
}
|
||||
if (query.isNotEmpty) {
|
||||
final filteredRegions = allRegions.where((region) {
|
||||
return region.name.toLowerCase().contains(query);
|
||||
}).toList() ?? [];
|
||||
regionList = filteredRegions;
|
||||
}).toList();
|
||||
emit(RegionsLoadedState(regions: filteredRegions));
|
||||
}else{
|
||||
regionList = await ProfileApi.fetchRegion();
|
||||
emit(RegionsLoadedState(regions: regionList!));
|
||||
} else {
|
||||
emit(RegionsLoadedState(regions: allRegions));
|
||||
}
|
||||
}
|
||||
|
||||
Future searchTimeZone(SearchTimeZoneEvent event, Emitter<ProfileState> emit) async {
|
||||
Future<void> searchTimeZone(SearchTimeZoneEvent event, Emitter<ProfileState> emit) async {
|
||||
emit(LoadingInitialState());
|
||||
final query = event.query.toLowerCase();
|
||||
if(event.query.isNotEmpty){
|
||||
final filtered = timeZoneList?.where((region) {
|
||||
if (allTimeZone.isEmpty) {
|
||||
allTimeZone = await ProfileApi.fetchTimeZone();
|
||||
}
|
||||
if (query.isNotEmpty) {
|
||||
final filteredRegions = allTimeZone.where((region) {
|
||||
return region.name.toLowerCase().contains(query);
|
||||
}).toList() ?? [];
|
||||
timeZoneList = filtered;
|
||||
emit(TimeZoneLoadedState(regions: filtered));
|
||||
}else{
|
||||
timeZoneList = await ProfileApi.fetchTimeZone();
|
||||
emit(UpdateState(timeZoneList: timeZoneList!));
|
||||
}).toList();
|
||||
emit(TimeZoneLoadedState(timezone: filteredRegions));
|
||||
} else {
|
||||
emit(TimeZoneLoadedState(timezone: allTimeZone));
|
||||
}
|
||||
}
|
||||
|
||||
@ -157,9 +162,8 @@ class ProfileBloc extends Bloc<ProfileEvent, ProfileState> {
|
||||
void _fetchRegion(RegionInitialEvent event, Emitter<ProfileState> emit) async {
|
||||
try {
|
||||
emit(LoadingInitialState());
|
||||
|
||||
regionList = await ProfileApi.fetchRegion();
|
||||
emit(RegionsLoadedState(regions: regionList!));
|
||||
allRegions = await ProfileApi.fetchRegion();
|
||||
emit(RegionsLoadedState(regions: allRegions));
|
||||
} catch (e) {
|
||||
emit(FailedState(errorMessage: e.toString()));
|
||||
}
|
||||
|
Reference in New Issue
Block a user