diff --git a/web/src/components/ActivityCalendar/CalendarCell.tsx b/web/src/components/ActivityCalendar/CalendarCell.tsx index c1551b584..5d47dc569 100644 --- a/web/src/components/ActivityCalendar/CalendarCell.tsx +++ b/web/src/components/ActivityCalendar/CalendarCell.tsx @@ -11,10 +11,11 @@ export interface CalendarCellProps { tooltipText: string; onClick?: (date: string) => void; size?: CalendarSize; + disableTooltip?: boolean; } export const CalendarCell = memo((props: CalendarCellProps) => { - const { day, maxCount, tooltipText, onClick, size = "default" } = props; + const { day, maxCount, tooltipText, onClick, size = "default", disableTooltip = false } = props; const handleClick = () => { if (day.count > 0 && onClick) { @@ -62,7 +63,7 @@ export const CalendarCell = memo((props: CalendarCellProps) => { ); - const shouldShowTooltip = tooltipText && day.count > 0; + const shouldShowTooltip = tooltipText && day.count > 0 && !disableTooltip; if (!shouldShowTooltip) { return button; diff --git a/web/src/components/ActivityCalendar/MonthCalendar.tsx b/web/src/components/ActivityCalendar/MonthCalendar.tsx index e57a6a127..891a285be 100644 --- a/web/src/components/ActivityCalendar/MonthCalendar.tsx +++ b/web/src/components/ActivityCalendar/MonthCalendar.tsx @@ -35,7 +35,7 @@ const WeekdayHeader = memo(({ weekDays, size }: WeekdayHeaderProps) => ( WeekdayHeader.displayName = "WeekdayHeader"; export const MonthCalendar = memo((props: MonthCalendarProps) => { - const { month, data, maxCount, size = "default", onClick, className } = props; + const { month, data, maxCount, size = "default", onClick, className, disableTooltips = false } = props; const t = useTranslate(); const { generalSetting } = useInstance(); const today = useTodayDate(); @@ -65,6 +65,7 @@ export const MonthCalendar = memo((props: MonthCalendarProps) => { tooltipText={getTooltipText(day.count, day.date, t)} onClick={onClick} size={size} + disableTooltip={disableTooltips} /> ))} diff --git a/web/src/components/ActivityCalendar/YearCalendar.tsx b/web/src/components/ActivityCalendar/YearCalendar.tsx index 38ace4f48..e8b8f91f9 100644 --- a/web/src/components/ActivityCalendar/YearCalendar.tsx +++ b/web/src/components/ActivityCalendar/YearCalendar.tsx @@ -1,7 +1,6 @@ import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react"; import { memo, useMemo } from "react"; import { Button } from "@/components/ui/button"; -import { TooltipProvider } from "@/components/ui/tooltip"; import { cn } from "@/lib/utils"; import { useTranslate } from "@/utils/i18n"; import { getMaxYear, MIN_YEAR } from "./constants"; @@ -79,7 +78,7 @@ interface MonthCardProps { const MonthCard = memo(({ month, data, maxCount, onDateClick }: MonthCardProps) => (
{getMonthLabel(month)}
- +
)); MonthCard.displayName = "MonthCard"; @@ -105,13 +104,11 @@ export const YearCalendar = memo(({ selectedYear, data, onYearChange, onDateClic canGoNext={canGoNext} /> - -
- {months.map((month) => ( - - ))} -
-
+
+ {months.map((month) => ( + + ))} +
); }); diff --git a/web/src/components/ActivityCalendar/types.ts b/web/src/components/ActivityCalendar/types.ts index 00880fbfb..306b21b9b 100644 --- a/web/src/components/ActivityCalendar/types.ts +++ b/web/src/components/ActivityCalendar/types.ts @@ -27,6 +27,7 @@ export interface MonthCalendarProps { size?: CalendarSize; onClick?: (date: string) => void; className?: string; + disableTooltips?: boolean; } export interface YearCalendarProps {