Skip to content

Commit 4ad88c9

Browse files
[WEB-4747]chore: rendering cycle progress from snapshot (#7626)
* chore: rendering progress from snaposhot * chore: removed unncessary memoization --------- Co-authored-by: Sriram Veeraghanta <veeraghanta.sriram@gmail.com>
1 parent 7060853 commit 4ad88c9

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

apps/web/core/components/cycles/list/cycles-list-item.tsx

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use client";
2-
32
import { FC, MouseEvent, useRef } from "react";
3+
import isEmpty from "lodash/isEmpty";
44
import { observer } from "mobx-react";
55
import { usePathname, useSearchParams } from "next/navigation";
66
import { Check } from "lucide-react";
@@ -53,11 +53,6 @@ export const CyclesListItem: FC<TCyclesListItem> = observer((props) => {
5353
const isCompleted = cycleStatus === "completed";
5454
const isActive = cycleStatus === "current";
5555

56-
const completionPercentage =
57-
((cycleDetails.completed_issues + cycleDetails.cancelled_issues) / cycleDetails.total_issues) * 100;
58-
59-
const progress = isNaN(completionPercentage) ? 0 : Math.floor(completionPercentage);
60-
6156
// handlers
6257
const openCycleOverview = (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {
6358
e.preventDefault();
@@ -78,6 +73,21 @@ export const CyclesListItem: FC<TCyclesListItem> = observer((props) => {
7873

7974
const handleItemClick = cycleDetails.archived_at ? handleArchivedCycleClick : undefined;
8075

76+
const getCycleProgress = () => {
77+
let completionPercentage =
78+
((cycleDetails.completed_issues + cycleDetails.cancelled_issues) / cycleDetails.total_issues) * 100;
79+
80+
if (isCompleted && !isEmpty(cycleDetails.progress_snapshot)) {
81+
completionPercentage =
82+
((cycleDetails.progress_snapshot.completed_issues + cycleDetails.progress_snapshot.cancelled_issues) /
83+
cycleDetails.progress_snapshot.total_issues) *
84+
100;
85+
}
86+
return isNaN(completionPercentage) ? 0 : Math.floor(completionPercentage);
87+
};
88+
89+
const progress = getCycleProgress();
90+
8191
return (
8292
<ListItem
8393
title={cycleDetails?.name ?? ""}

0 commit comments

Comments
 (0)