11"use client" ;
2-
32import { FC , MouseEvent , useRef } from "react" ;
3+ import isEmpty from "lodash/isEmpty" ;
44import { observer } from "mobx-react" ;
55import { usePathname , useSearchParams } from "next/navigation" ;
66import { 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