From a44c90c966e2ff5bc9e33f9c848d85cc48995ee5 Mon Sep 17 00:00:00 2001 From: gearnode Date: Thu, 20 Mar 2025 15:14:40 +0100 Subject: [PATCH] Fix control order under a category close #54 Signed-off-by: gearnode --- .../src/pages/FrameworkOverviewPage.tsx | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/apps/console/src/pages/FrameworkOverviewPage.tsx b/apps/console/src/pages/FrameworkOverviewPage.tsx index e234787cc..f8257757b 100644 --- a/apps/console/src/pages/FrameworkOverviewPage.tsx +++ b/apps/console/src/pages/FrameworkOverviewPage.tsx @@ -154,12 +154,21 @@ function FrameworkOverviewPageContent({ const controlCards = Object.entries(controlsByCategory) .sort(([categoryA], [categoryB]) => categoryA.localeCompare(categoryB)) - .map(([category, controls]) => ({ - title: category, - controls, - completed: controls.filter((c) => c?.state === "IMPLEMENTED").length, - total: controls.length, - })); + .map(([category, controls]) => { + const sortedControls = [...controls].sort((a, b) => { + if (a?.state === "IMPLEMENTED" && b?.state !== "IMPLEMENTED") return -1; + if (a?.state !== "IMPLEMENTED" && b?.state === "IMPLEMENTED") return 1; + + return (a?.name || "").localeCompare(b?.name || ""); + }); + + return { + title: category, + controls: sortedControls, + completed: controls.filter((c) => c?.state === "IMPLEMENTED").length, + total: controls.length, + }; + }); const totalImplemented = controls.filter( (c) => c?.state === "IMPLEMENTED"