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" && ( - - )} + ); }