diff --git a/inventory/src/pages/BlackFridayDashboard.tsx b/inventory/src/pages/BlackFridayDashboard.tsx index bcf0df2..61cc9cb 100644 --- a/inventory/src/pages/BlackFridayDashboard.tsx +++ b/inventory/src/pages/BlackFridayDashboard.tsx @@ -513,6 +513,9 @@ function LoadingBlock() { export function BlackFridayDashboard() { const currentYear = new Date().getUTCFullYear(); + const currentMonth = new Date().getUTCMonth() + 1; // getUTCMonth() returns 0-11, so add 1 + // Show previous year until November of current year + const displayYear = currentMonth < 11 ? currentYear - 1 : currentYear; const availableYears = useMemo( () => Array.from({ length: 6 }, (_, index) => currentYear - index).filter( @@ -686,9 +689,14 @@ export function BlackFridayDashboard() { [selectedYears] ); + const chartYears = useMemo( + () => sortedYears.filter(y => y <= displayYear), + [sortedYears, displayYear] + ); + const previousYears = useMemo( - () => sortedYears.filter(y => y !== currentYear), - [sortedYears, currentYear] + () => sortedYears.filter(y => y !== displayYear), + [sortedYears, displayYear] ); const yoyByYear = useMemo(() => { @@ -712,11 +720,11 @@ export function BlackFridayDashboard() { }, [dataByYear, sortedYears]); const chartData = useMemo(() => { - if (!sortedYears.length) return []; + if (!chartYears.length) return []; return DAY_LABELS.map((label, index) => { const point: Record = { day: label }; - sortedYears.forEach((year, colorIndex) => { + chartYears.forEach((year, colorIndex) => { const day = dataByYear[year]?.days[index]; point[`${year}-revenue`] = day?.revenue ?? 0; point[`${year}-orders`] = day?.orders ?? 0; @@ -728,7 +736,7 @@ export function BlackFridayDashboard() { }); return point; }); - }, [dataByYear, sortedYears]); + }, [dataByYear, chartYears]); const debugOverlay = useMemo(() => { if (!bucketDebug.length) return []; @@ -736,18 +744,18 @@ export function BlackFridayDashboard() { }, [bucketDebug]); const getStrokeForYear = (year: number) => { - const index = sortedYears.indexOf(year); + const index = chartYears.indexOf(year); return COLOR_PALETTE[index % COLOR_PALETTE.length]; }; - const currentYearData = dataByYear[currentYear]; - const lastYearData = dataByYear[currentYear - 1]; + const currentYearData = dataByYear[displayYear]; + const lastYearData = dataByYear[displayYear - 1]; // Live status indicator const renderLiveHeader = () => (
-

Black Friday {currentYear}

+

Black Friday {displayYear}

{currentYearData?.range.label}
@@ -781,7 +789,7 @@ export function BlackFridayDashboard() { const renderCurrentYearHero = () => { if (!currentYearData) return null; - const yoy = yoyByYear[currentYear]; + const yoy = yoyByYear[displayYear]; return (
@@ -1000,16 +1008,16 @@ export function BlackFridayDashboard() { width={45} /> } /> - {sortedYears.map((year) => ( + {chartYears.map((year) => ( ))} @@ -1047,16 +1055,16 @@ export function BlackFridayDashboard() { width={45} /> } /> - {sortedYears.map((year) => ( + {chartYears.map((year) => ( ))} @@ -1094,16 +1102,16 @@ export function BlackFridayDashboard() { width={45} /> } /> - {sortedYears.map((year) => ( + {chartYears.map((year) => ( ))} @@ -1141,16 +1149,16 @@ export function BlackFridayDashboard() { width={35} /> } /> - {sortedYears.map((year) => ( + {chartYears.map((year) => ( ))} @@ -1188,16 +1196,16 @@ export function BlackFridayDashboard() { width={40} /> } /> - {sortedYears.map((year) => ( + {chartYears.map((year) => ( ))} @@ -1235,16 +1243,16 @@ export function BlackFridayDashboard() { width={40} /> } /> - {sortedYears.map((year) => ( + {chartYears.map((year) => ( ))} @@ -1276,11 +1284,11 @@ export function BlackFridayDashboard() { - {sortedYears.map((year) => { + {sortedYears.filter(year => year <= displayYear).map((year) => { const entry = dataByYear[year]; if (!entry) return null; - const isCurrentYear = year === currentYear; + const isCurrentYear = year === displayYear; return ( (
- {sortedYears.map((year) => ( + {chartYears.map((year) => (
{year}