mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-08-25 15:09:41 +00:00
Created duplicate_space
presentation layer.
This commit is contained in:
@ -0,0 +1,36 @@
|
|||||||
|
import 'package:bloc/bloc.dart';
|
||||||
|
import 'package:equatable/equatable.dart';
|
||||||
|
import 'package:syncrow_web/pages/space_management_v2/modules/communities/domain/models/space_model.dart';
|
||||||
|
import 'package:syncrow_web/pages/space_management_v2/modules/duplicate_space/domain/params/duplicate_space_param.dart';
|
||||||
|
import 'package:syncrow_web/pages/space_management_v2/modules/duplicate_space/domain/services/duplicate_space_service.dart';
|
||||||
|
import 'package:syncrow_web/services/api/api_exception.dart';
|
||||||
|
|
||||||
|
part 'duplicate_space_event.dart';
|
||||||
|
part 'duplicate_space_state.dart';
|
||||||
|
|
||||||
|
class DuplicateSpaceBloc extends Bloc<DuplicateSpaceEvent, DuplicateSpaceState> {
|
||||||
|
DuplicateSpaceBloc(
|
||||||
|
this._duplicateSpaceService,
|
||||||
|
) : super(const DuplicateSpaceInitial()) {
|
||||||
|
on<DuplicateSpaceEvent>(_onDuplicateSpaceEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
final DuplicateSpaceService _duplicateSpaceService;
|
||||||
|
|
||||||
|
Future<void> _onDuplicateSpaceEvent(
|
||||||
|
DuplicateSpaceEvent event,
|
||||||
|
Emitter<DuplicateSpaceState> emit,
|
||||||
|
) async {
|
||||||
|
try {
|
||||||
|
emit(const DuplicateSpaceLoading());
|
||||||
|
final result = await _duplicateSpaceService.duplicateSpace(event.param);
|
||||||
|
emit(DuplicateSpaceSuccess(result));
|
||||||
|
} on APIException catch (e) {
|
||||||
|
emit(DuplicateSpaceFailure(e.message));
|
||||||
|
} catch (e) {
|
||||||
|
emit(DuplicateSpaceFailure(e.toString()));
|
||||||
|
} finally {
|
||||||
|
emit(const DuplicateSpaceInitial());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
part of 'duplicate_space_bloc.dart';
|
||||||
|
|
||||||
|
final class DuplicateSpaceEvent extends Equatable {
|
||||||
|
const DuplicateSpaceEvent({required this.param});
|
||||||
|
|
||||||
|
final DuplicateSpaceParam param;
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<Object> get props => [param];
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
part of 'duplicate_space_bloc.dart';
|
||||||
|
|
||||||
|
sealed class DuplicateSpaceState extends Equatable {
|
||||||
|
const DuplicateSpaceState();
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<Object> get props => [];
|
||||||
|
}
|
||||||
|
|
||||||
|
final class DuplicateSpaceInitial extends DuplicateSpaceState {
|
||||||
|
const DuplicateSpaceInitial();
|
||||||
|
}
|
||||||
|
|
||||||
|
final class DuplicateSpaceLoading extends DuplicateSpaceState {
|
||||||
|
const DuplicateSpaceLoading();
|
||||||
|
}
|
||||||
|
|
||||||
|
final class DuplicateSpaceSuccess extends DuplicateSpaceState {
|
||||||
|
const DuplicateSpaceSuccess(this.space);
|
||||||
|
|
||||||
|
final SpaceModel space;
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<Object> get props => [space];
|
||||||
|
}
|
||||||
|
|
||||||
|
final class DuplicateSpaceFailure extends DuplicateSpaceState {
|
||||||
|
const DuplicateSpaceFailure(this.errorMessage);
|
||||||
|
|
||||||
|
final String errorMessage;
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<Object> get props => [errorMessage];
|
||||||
|
}
|
Reference in New Issue
Block a user