From 58e68fca9c1587d4ddcdbc21f64cd576248f5e85 Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Thu, 22 May 2025 13:38:08 -0300 Subject: [PATCH] fix: simplify GetStartedProgress percentage calculation logic (#8183) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🐛 (get-started-progress.tsx): fix calculation of totalPercentage to correctly display progress bar percentage 💡 (get-started-progress.tsx): refactor logic to calculate totalPercentage based on user opt-ins and flows --- .../components/get-started-progress.tsx | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/frontend/src/components/core/folderSidebarComponent/components/sideBarFolderButtons/components/get-started-progress.tsx b/src/frontend/src/components/core/folderSidebarComponent/components/sideBarFolderButtons/components/get-started-progress.tsx index 5676243f3..057170707 100644 --- a/src/frontend/src/components/core/folderSidebarComponent/components/sideBarFolderButtons/components/get-started-progress.tsx +++ b/src/frontend/src/components/core/folderSidebarComponent/components/sideBarFolderButtons/components/get-started-progress.tsx @@ -35,25 +35,27 @@ export const GetStartedProgress: FC<{ const hasFlows = flows && flows?.length > 0; const percentageGetStarted = useMemo(() => { - const totalSteps = 3; - let hasFlowsCount = 0; - const completedSteps = Object.keys(userData?.optins ?? {}).filter( - (key) => userData?.optins?.[key], - )?.length; + const stepValue = 33; + let totalPercentage = 0; - if (hasFlows) { - hasFlowsCount = 33; + if (userData?.optins?.github_starred) { + totalPercentage += stepValue; } - const percentage = - Math.round((completedSteps / totalSteps) * 100) + hasFlowsCount; + if (userData?.optins?.discord_clicked) { + totalPercentage += stepValue; + } - if (percentage > 100) { + if (hasFlows) { + totalPercentage += stepValue; + } + + if (totalPercentage === 99) { return 100; } - return percentage; - }, [userData?.optins, isGithubStarredChild, isDiscordJoinedChild, hasFlows]); + return Math.min(totalPercentage, 100); + }, [userData?.optins, hasFlows]); const handleUserTrack = (key: string) => { const optins = userData?.optins ?? {};