From 7c5fd01d7f8fd57d0524f499ae8ec8731dc9a64b Mon Sep 17 00:00:00 2001 From: Bhavya-egov Date: Mon, 17 Jun 2024 14:27:35 +0530 Subject: [PATCH] fixed hierarchy order --- .../src/components/SelectingBoundaries.js | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/micro-ui/web/micro-ui-internals/packages/modules/campaign-manager/src/components/SelectingBoundaries.js b/micro-ui/web/micro-ui-internals/packages/modules/campaign-manager/src/components/SelectingBoundaries.js index 72ab4a94f7d..239cf948ee0 100644 --- a/micro-ui/web/micro-ui-internals/packages/modules/campaign-manager/src/components/SelectingBoundaries.js +++ b/micro-ui/web/micro-ui-internals/packages/modules/campaign-manager/src/components/SelectingBoundaries.js @@ -75,7 +75,35 @@ function SelectingBoundaries({ onSelect, formData, ...props }) { }, [params?.hierarchyType]); useEffect(() => { - setHierarchyTypeDataresult(params?.hierarchy); + if (params?.hierarchy) { + const sortHierarchy = (hierarchy) => { + const boundaryMap = new Map(); + hierarchy.forEach(item => { + boundaryMap.set(item.boundaryType, item); + }); + + const sortedHierarchy = []; + let currentType = null; + + while (sortedHierarchy.length < hierarchy.length) { + for (let i = 0; i < hierarchy.length; i++) { + if (hierarchy[i].parentBoundaryType === currentType) { + sortedHierarchy.push(hierarchy[i]); + currentType = hierarchy[i].boundaryType; + break; + } + } + } + + return sortedHierarchy; + }; + + const sortedHierarchy = sortHierarchy(params.hierarchy.boundaryHierarchy); + setHierarchyTypeDataresult({ + ...params.hierarchy, + boundaryHierarchy: sortedHierarchy + }); + } }, [params?.hierarchy]); useEffect(() => {