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