From 1d8aaa08f849d3dab370de76e84fbcfc99f7fca5 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Thu, 15 May 2025 10:16:38 -0500 Subject: [PATCH] update review activity custom component for rdp --- .../overlay/ReviewActivityCalendar.tsx | 74 +++++++++++-------- 1 file changed, 43 insertions(+), 31 deletions(-) diff --git a/web/src/components/overlay/ReviewActivityCalendar.tsx b/web/src/components/overlay/ReviewActivityCalendar.tsx index baaf2bec8..7c8015349 100644 --- a/web/src/components/overlay/ReviewActivityCalendar.tsx +++ b/web/src/components/overlay/ReviewActivityCalendar.tsx @@ -1,9 +1,9 @@ import { RecordingsSummary, ReviewSummary } from "@/types/review"; import { Calendar } from "../ui/calendar"; -import { useMemo } from "react"; +import { ButtonHTMLAttributes, useEffect, useMemo, useRef } from "react"; import { FaCircle } from "react-icons/fa"; import { getUTCOffset } from "@/utils/dateUtil"; -import { type DayContentProps } from "react-day-picker"; +import { type DayButtonProps } from "react-day-picker"; import { LAST_24_HOURS_KEY } from "@/types/filter"; import { usePersistence } from "@/hooks/use-persistence"; import { cn } from "@/lib/utils"; @@ -94,7 +94,7 @@ export default function ReviewActivityCalendar({ onSelect={onSelect} modifiers={modifiers} components={{ - DayContent: ReviewActivityDay, + DayButton: ReviewActivityDay, }} defaultMonth={selectedDay ?? new Date()} weekStartsOn={(weekStartsOn ?? 0) as WeekStartsOnType} @@ -102,43 +102,55 @@ export default function ReviewActivityCalendar({ ); } -function ReviewActivityDay({ date, activeModifiers }: DayContentProps) { +function ReviewActivityDay({ + day, + modifiers, + ...buttonProps +}: DayButtonProps & ButtonHTMLAttributes) { + const ref = useRef(null); + + useEffect(() => { + if (modifiers.focused) ref.current?.focus(); + }, [modifiers.focused]); + const dayActivity = useMemo(() => { - if (activeModifiers["alerts"]) { + if (modifiers["alerts"]) { return "alert"; - } else if (activeModifiers["detections"]) { + } else if (modifiers["detections"]) { return "detection"; } else { return "none"; } - }, [activeModifiers]); + }, [modifiers]); return ( -
- - {date.getDate()} - -
- {dayActivity != "none" && ( - - )} + ); }