From d1910cad5d90a07d1cd29817e7b70601dd18c0de Mon Sep 17 00:00:00 2001 From: Harman-singh-waraich Date: Thu, 14 Aug 2025 16:45:27 +0530 Subject: [PATCH 1/2] fix(web): timeline-bug-fix --- web/src/pages/Cases/CaseDetails/Timeline.tsx | 34 +++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/web/src/pages/Cases/CaseDetails/Timeline.tsx b/web/src/pages/Cases/CaseDetails/Timeline.tsx index 0dbf8fdfd..315d6df70 100644 --- a/web/src/pages/Cases/CaseDetails/Timeline.tsx +++ b/web/src/pages/Cases/CaseDetails/Timeline.tsx @@ -68,7 +68,7 @@ const Timeline: React.FC<{ currentPeriodIndex: number; }> = ({ currentPeriodIndex, dispute }) => { const currentItemIndex = currentPeriodToCurrentItem(currentPeriodIndex, dispute?.court.hiddenVotes); - const items = useTimeline(dispute, currentItemIndex, currentItemIndex); + const items = useTimeline(dispute, currentPeriodIndex); return ( @@ -103,30 +103,26 @@ const currentPeriodToCurrentItem = (currentPeriodIndex: number, hiddenVotes?: bo else return currentPeriodIndex - 1; }; -const useTimeline = (dispute: DisputeDetailsQuery["dispute"], currentItemIndex: number, currentPeriodIndex: number) => { +const useTimeline = (dispute: DisputeDetailsQuery["dispute"], currentPeriodIndex: number) => { const isDesktop = useIsDesktop(); - const titles = useMemo(() => { - const titles = ["Evidence", "Voting", "Appeal", "Executed"]; - if (dispute?.court.hiddenVotes) { - titles.splice(1, 0, "Commit"); - } - return titles; - }, [dispute]); + const titles = ["Evidence", "Commit", "Voting", "Appeal", "Executed"]; + const deadlineCurrentPeriod = getDeadline( currentPeriodIndex, dispute?.lastPeriodChange, dispute?.court.timesPerPeriod ); + const countdown = useCountdown(deadlineCurrentPeriod); const getSubitems = (index: number): string[] | React.ReactNode[] => { if (typeof countdown !== "undefined" && dispute) { if (index === titles.length - 1) { return []; - } else if (index === currentItemIndex && countdown === 0) { + } else if (index === currentPeriodIndex && countdown === 0) { return ["Time's up!"]; - } else if (index < currentItemIndex) { + } else if (index < currentPeriodIndex) { return []; - } else if (index === currentItemIndex) { + } else if (index === currentPeriodIndex) { return [secondsToDayHourMinute(countdown)]; } else { return [secondsToDayHourMinute(dispute?.court.timesPerPeriod[index])]; @@ -134,10 +130,16 @@ const useTimeline = (dispute: DisputeDetailsQuery["dispute"], currentItemIndex: } return []; }; - return titles.map((title, i) => ({ - title: i + 1 < titles.length && isDesktop ? `${title} Period` : title, - subitems: getSubitems(i), - })); + return titles + .map((title, i) => { + // if not hidden votes, skip commit index + if (!dispute?.court.hiddenVotes && i === Periods.commit) return; + return { + title: i + 1 < titles.length && isDesktop ? `${title} Period` : title, + subitems: getSubitems(i), + }; + }) + .filter((item) => !isUndefined(item)); }; export const getDeadline = ( From 8d0edf4b79f2a2c7918e6567c9505df99e329d5d Mon Sep 17 00:00:00 2001 From: Harman-singh-waraich Date: Thu, 14 Aug 2025 18:48:53 +0530 Subject: [PATCH 2/2] chore: rabbit-review --- web/src/pages/Cases/CaseDetails/Timeline.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/web/src/pages/Cases/CaseDetails/Timeline.tsx b/web/src/pages/Cases/CaseDetails/Timeline.tsx index 315d6df70..3d8af7464 100644 --- a/web/src/pages/Cases/CaseDetails/Timeline.tsx +++ b/web/src/pages/Cases/CaseDetails/Timeline.tsx @@ -130,16 +130,16 @@ const useTimeline = (dispute: DisputeDetailsQuery["dispute"], currentPeriodIndex } return []; }; - return titles - .map((title, i) => { - // if not hidden votes, skip commit index - if (!dispute?.court.hiddenVotes && i === Periods.commit) return; - return { + return titles.flatMap((title, i) => { + // if not hidden votes, skip commit index + if (!dispute?.court.hiddenVotes && i === Periods.commit) return []; + return [ + { title: i + 1 < titles.length && isDesktop ? `${title} Period` : title, subitems: getSubitems(i), - }; - }) - .filter((item) => !isUndefined(item)); + }, + ]; + }); }; export const getDeadline = (