mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 15:17:31 +00:00
Made CommunitiesBloc state object one class, instead of multiple, to make searching and pagination easier.
This commit is contained in:
@ -14,7 +14,7 @@ class CommunitiesBloc extends Bloc<CommunitiesEvent, CommunitiesState> {
|
|||||||
CommunitiesBloc({
|
CommunitiesBloc({
|
||||||
required CommunitiesService communitiesService,
|
required CommunitiesService communitiesService,
|
||||||
}) : _communitiesService = communitiesService,
|
}) : _communitiesService = communitiesService,
|
||||||
super(CommunitiesInitial()) {
|
super(const CommunitiesState()) {
|
||||||
on<LoadCommunities>(_onGetCommunity);
|
on<LoadCommunities>(_onGetCommunity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -23,13 +23,28 @@ class CommunitiesBloc extends Bloc<CommunitiesEvent, CommunitiesState> {
|
|||||||
Emitter<CommunitiesState> emit,
|
Emitter<CommunitiesState> emit,
|
||||||
) async {
|
) async {
|
||||||
try {
|
try {
|
||||||
emit(CommunitiesLoading());
|
emit(const CommunitiesState(status: CommunitiesStatus.loading));
|
||||||
final communities = await _communitiesService.getCommunity(event.param);
|
final communities = await _communitiesService.getCommunity(event.param);
|
||||||
emit(CommunitiesLoaded(communities));
|
emit(
|
||||||
|
CommunitiesState(
|
||||||
|
status: CommunitiesStatus.success,
|
||||||
|
communities: communities,
|
||||||
|
),
|
||||||
|
);
|
||||||
} on APIException catch (e) {
|
} on APIException catch (e) {
|
||||||
emit(CommunitiesFailure(e.message));
|
emit(
|
||||||
|
CommunitiesState(
|
||||||
|
status: CommunitiesStatus.failure,
|
||||||
|
errorMessage: e.message,
|
||||||
|
),
|
||||||
|
);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
emit(CommunitiesFailure(e.toString()));
|
emit(
|
||||||
|
CommunitiesState(
|
||||||
|
status: CommunitiesStatus.failure,
|
||||||
|
errorMessage: e.toString(),
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,30 +1,18 @@
|
|||||||
part of 'communities_bloc.dart';
|
part of 'communities_bloc.dart';
|
||||||
|
|
||||||
sealed class CommunitiesState extends Equatable {
|
enum CommunitiesStatus { initial, loading, success, failure }
|
||||||
const CommunitiesState();
|
|
||||||
|
|
||||||
@override
|
class CommunitiesState extends Equatable {
|
||||||
List<Object?> get props => [];
|
final CommunitiesStatus status;
|
||||||
}
|
|
||||||
|
|
||||||
final class CommunitiesInitial extends CommunitiesState {}
|
|
||||||
|
|
||||||
final class CommunitiesLoading extends CommunitiesState {}
|
|
||||||
|
|
||||||
final class CommunitiesLoaded extends CommunitiesState {
|
|
||||||
final List<CommunityModel> communities;
|
final List<CommunityModel> communities;
|
||||||
|
final String? errorMessage;
|
||||||
|
|
||||||
const CommunitiesLoaded(this.communities);
|
const CommunitiesState({
|
||||||
|
this.status = CommunitiesStatus.initial,
|
||||||
|
this.communities = const [],
|
||||||
|
this.errorMessage,
|
||||||
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [communities];
|
List<Object?> get props => [status, communities, errorMessage];
|
||||||
}
|
|
||||||
|
|
||||||
final class CommunitiesFailure extends CommunitiesState {
|
|
||||||
final String message;
|
|
||||||
|
|
||||||
const CommunitiesFailure(this.message);
|
|
||||||
|
|
||||||
@override
|
|
||||||
List<Object?> get props => [message];
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user