diff --git a/components/user/brain/UserPageBrainActivityHeatmap.tsx b/components/user/brain/UserPageBrainActivityHeatmap.tsx index 94c84887f4..ab11df6a63 100644 --- a/components/user/brain/UserPageBrainActivityHeatmap.tsx +++ b/components/user/brain/UserPageBrainActivityHeatmap.tsx @@ -19,11 +19,12 @@ import { LOADING_HEATMAP_WEEK_COUNT, HEATMAP_VIEWPORT_CLASS_NAME, LOADING_MONTH_HEADER_SEGMENTS, - MONTH_LABEL_MIN_SPACING_PX, MONTH_LABEL_ROW_HEIGHT_PX, TOOLTIP_DATE_FORMATTER, TOOLTIP_STYLE, type HeatmapTooltipData, + getHeatmapColumnLeftPx, + getHeatmapGridWidthPx, getCellFrameClassName, getCellNodeClassName, getCellTooltipAnchorProps, @@ -33,7 +34,7 @@ import { } from "./userPageBrainActivityHeatmap.helpers"; import { useHeatmapViewport } from "./userPageBrainActivityHeatmap.viewport"; -const LOADING_COLUMN_STRIDE_PX = CELL_SIZE_PX + CELL_GAP_PX; +const LOADING_GRID_WIDTH_PX = getHeatmapGridWidthPx(LOADING_HEATMAP_WEEK_COUNT); const LOADING_HEATMAP_CELLS = Array.from( { length: LOADING_HEATMAP_WEEK_COUNT * 7 }, (_, index) => { @@ -51,7 +52,7 @@ const LOADING_HEATMAP_CELLS = Array.from( ); export function UserPageBrainActivityHeatmapLoading() { - const { viewportRef, viewportMetrics } = useHeatmapViewport("loading"); + const { viewportRef } = useHeatmapViewport("loading"); return (
-
- -
-
- +
+
+ +
@@ -92,45 +88,37 @@ export function UserPageBrainActivityHeatmap({ activity: UserPageBrainActivityViewModel; }>) { const tooltipId = useId(); - const { viewportRef, viewportMetrics } = useHeatmapViewport( - activity.resetKey - ); + const { viewportRef } = useHeatmapViewport(activity.resetKey); return (
-
- -
-
-
- {activity.cells.map((cell) => ( - - ))} -
- { - const tooltipData = getHeatmapTooltipData(activeAnchor); - return tooltipData ? ( - - ) : null; - }} - /> +
+
+ +
+ {activity.cells.map((cell) => ( + + ))}
+ { + const tooltipData = getHeatmapTooltipData(activeAnchor); + return tooltipData ? ( + + ) : null; + }} + />
@@ -237,39 +225,22 @@ function HeatmapTooltipContent({ ); } -function HeatmapLoadingMonthLabels({ - scrollLeft, - clientWidth, -}: Readonly<{ - scrollLeft: number; - clientWidth: number; -}>) { - const visibleSegments = LOADING_MONTH_HEADER_SEGMENTS.filter((segment) => { - const leftPx = segment.labelColumn * LOADING_COLUMN_STRIDE_PX - scrollLeft; - const rightPx = leftPx + segment.widthPx; - - if (clientWidth <= 0) { - return true; - } - - return rightPx >= 0 && leftPx <= clientWidth; - }); - +function HeatmapLoadingMonthLabels() { return (