mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-08-24 20:12:27 +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