import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:syncrow_web/pages/spaces_management/all_spaces/model/subspace_model.dart'; import 'package:syncrow_web/utils/constants/action_enum.dart'; import 'subspace_event.dart'; import 'subspace_state.dart'; class SubSpaceBloc extends Bloc { SubSpaceBloc() : super(SubSpaceState([], [], '')) { on((event, emit) { final existingNames = state.subSpaces.map((e) => e.subspaceName).toSet(); if (existingNames.contains(event.subSpace.subspaceName.toLowerCase())) { emit(SubSpaceState( state.subSpaces, state.updatedSubSpaceModels, 'Subspace name already exists.', )); } else { final updatedSubSpaces = List.from(state.subSpaces) ..add(event.subSpace); emit(SubSpaceState( updatedSubSpaces, state.updatedSubSpaceModels, '', )); } }); // Handle RemoveSubSpace Event on((event, emit) { final updatedSubSpaces = List.from(state.subSpaces) ..remove(event.subSpace); final updatedSubspaceModels = List.from( state.updatedSubSpaceModels, ); if (event.subSpace.uuid?.isNotEmpty ?? false) { updatedSubspaceModels.add(UpdateSubspaceModel( action: Action.delete, uuid: event.subSpace.uuid!, )); } emit(SubSpaceState( updatedSubSpaces, updatedSubspaceModels, '', // Clear error message )); }); // Handle UpdateSubSpace Event } }