diff --git a/lib/pages/space_management_v2/main_module/widgets/community_structure_header_action_buttons_composer.dart b/lib/pages/space_management_v2/main_module/widgets/community_structure_header_action_buttons_composer.dart index d3e2d18a..ef1ceac4 100644 --- a/lib/pages/space_management_v2/main_module/widgets/community_structure_header_action_buttons_composer.dart +++ b/lib/pages/space_management_v2/main_module/widgets/community_structure_header_action_buttons_composer.dart @@ -1,5 +1,3 @@ -import 'dart:developer'; - import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:syncrow_web/pages/space_management_v2/main_module/helpers/spaces_recursive_helper.dart'; @@ -53,8 +51,16 @@ class CommunityStructureHeaderActionButtonsComposer extends StatelessWidget { initialName: space.spaceName, selectedSpaceUuid: space.uuid, selectedCommunityUuid: selectedCommunity.uuid, - onSuccess: (space) { - log('space: $space'); + onSuccess: (spaces) { + final updatedCommunity = selectedCommunity.copyWith( + spaces: spaces, + ); + context.read().add( + CommunitiesUpdateCommunity(updatedCommunity), + ); + context.read().add( + SelectCommunityEvent(community: updatedCommunity), + ); }, ), ), diff --git a/lib/pages/space_management_v2/modules/duplicate_space/data/services/remote_duplicate_space_service.dart b/lib/pages/space_management_v2/modules/duplicate_space/data/services/remote_duplicate_space_service.dart index 7d5ffa30..7a13d4eb 100644 --- a/lib/pages/space_management_v2/modules/duplicate_space/data/services/remote_duplicate_space_service.dart +++ b/lib/pages/space_management_v2/modules/duplicate_space/data/services/remote_duplicate_space_service.dart @@ -13,15 +13,17 @@ final class RemoteDuplicateSpaceService implements DuplicateSpaceService { final HTTPService _httpService; @override - Future duplicateSpace(DuplicateSpaceParam param) async { + Future> duplicateSpace(DuplicateSpaceParam param) async { try { final response = await _httpService.post( path: await _makeUrl(param), body: param.toJson(), expectedResponseModel: (json) { final response = json as Map; - final data = response['data'] as Map; - return SpaceModel.fromJson(data); + final data = response['data'] as List; + return data + .map((e) => SpaceModel.fromJson(e as Map)) + .toList(); }, ); diff --git a/lib/pages/space_management_v2/modules/duplicate_space/domain/services/duplicate_space_service.dart b/lib/pages/space_management_v2/modules/duplicate_space/domain/services/duplicate_space_service.dart index 955d28de..56f0d961 100644 --- a/lib/pages/space_management_v2/modules/duplicate_space/domain/services/duplicate_space_service.dart +++ b/lib/pages/space_management_v2/modules/duplicate_space/domain/services/duplicate_space_service.dart @@ -2,5 +2,5 @@ import 'package:syncrow_web/pages/space_management_v2/modules/communities/domain import 'package:syncrow_web/pages/space_management_v2/modules/duplicate_space/domain/params/duplicate_space_param.dart'; abstract interface class DuplicateSpaceService { - Future duplicateSpace(DuplicateSpaceParam param); + Future> duplicateSpace(DuplicateSpaceParam param); } diff --git a/lib/pages/space_management_v2/modules/duplicate_space/presentation/bloc/duplicate_space_state.dart b/lib/pages/space_management_v2/modules/duplicate_space/presentation/bloc/duplicate_space_state.dart index d27a5b38..d104b184 100644 --- a/lib/pages/space_management_v2/modules/duplicate_space/presentation/bloc/duplicate_space_state.dart +++ b/lib/pages/space_management_v2/modules/duplicate_space/presentation/bloc/duplicate_space_state.dart @@ -16,12 +16,12 @@ final class DuplicateSpaceLoading extends DuplicateSpaceState { } final class DuplicateSpaceSuccess extends DuplicateSpaceState { - const DuplicateSpaceSuccess(this.space); + const DuplicateSpaceSuccess(this.spaces); - final SpaceModel space; + final List spaces; @override - List get props => [space]; + List get props => [spaces]; } final class DuplicateSpaceFailure extends DuplicateSpaceState { diff --git a/lib/pages/space_management_v2/modules/duplicate_space/presentation/views/duplicate_space_dialog.dart b/lib/pages/space_management_v2/modules/duplicate_space/presentation/views/duplicate_space_dialog.dart index ec98dd51..dcda4a58 100644 --- a/lib/pages/space_management_v2/modules/duplicate_space/presentation/views/duplicate_space_dialog.dart +++ b/lib/pages/space_management_v2/modules/duplicate_space/presentation/views/duplicate_space_dialog.dart @@ -18,7 +18,7 @@ class DuplicateSpaceDialog extends StatelessWidget { }); final String initialName; - final void Function(SpaceModel space) onSuccess; + final void Function(List spaces) onSuccess; final String selectedSpaceUuid; final String selectedCommunityUuid; @@ -55,13 +55,11 @@ class DuplicateSpaceDialog extends StatelessWidget { context.showFailureSnackbar(errorMessage); break; - case DuplicateSpaceSuccess(:final space): - onSuccess.call(space); + case DuplicateSpaceSuccess(:final spaces): + onSuccess.call(spaces); Navigator.of(context).pop(); Navigator.of(context).pop(); - context.showSuccessSnackbar( - '${space.spaceName} duplicated successfully', - ); + context.showSuccessSnackbar('Space duplicated successfully'); break; default: