Refactor recursivelyInsert method in SpacesRecursiveHelper to use named parameters. Update CommunityStructureCanvas to reflect these changes, ensuring correct space insertion under the specified parent.

This commit is contained in:
Faris Armoush
2025-07-16 16:30:38 +03:00
parent 8522c0bbc3
commit 7b5b40a03c
2 changed files with 18 additions and 12 deletions

View File

@ -43,20 +43,26 @@ abstract final class SpacesRecursiveHelper {
return nonNullSpaces;
}
static List<SpaceModel> recusrivelyInsert(
List<SpaceModel> spaces,
SpaceModel newSpace,
String parentUuid,
) {
static List<SpaceModel> recursivelyInsert({
required List<SpaceModel> spaces,
required String parentUuid,
required SpaceModel newSpace,
}) {
return spaces.map((space) {
if (space.uuid == parentUuid) {
final isParentSpace = space.uuid == parentUuid;
if (isParentSpace) {
return space.copyWith(
children: [...space.children, newSpace],
);
}
if (space.children.isNotEmpty) {
final hasChildren = space.children.isNotEmpty;
if (hasChildren) {
return space.copyWith(
children: recusrivelyInsert(space.children, newSpace, parentUuid),
children: recursivelyInsert(
spaces: space.children,
parentUuid: parentUuid,
newSpace: newSpace,
),
);
}
return space;

View File

@ -330,10 +330,10 @@ class _CommunityStructureCanvasState extends State<CommunityStructureCanvas>
communityUuid: widget.community.uuid,
parentUuid: space.uuid,
onSuccess: (updatedSpaceModel) {
final updatedSpaces = SpacesRecursiveHelper.recusrivelyInsert(
spaces,
updatedSpaceModel,
space.uuid,
final updatedSpaces = SpacesRecursiveHelper.recursivelyInsert(
spaces: widget.community.spaces,
parentUuid: space.uuid,
newSpace: updatedSpaceModel,
);
context.read<CommunitiesBloc>().add(
CommunitiesUpdateCommunity(