From d16c483dfc4bb149901d920cb33bbeddff1c17a6 Mon Sep 17 00:00:00 2001 From: Andrei Zhaleznichenka Date: Wed, 25 Mar 2026 13:58:41 +0100 Subject: [PATCH] wip --- src/calendar/grid/index.tsx | 13 ++++-- src/calendar/internal.tsx | 6 ++- .../__tests__/date-picker.test.tsx | 40 ++++++++++++++++- src/date-picker/index.tsx | 4 ++ .../__tests__/date-range-picker.test.tsx | 44 ++++++++++++++++++- .../calendar/grids/grid-cell.tsx | 4 +- src/date-range-picker/calendar/grids/grid.tsx | 2 + .../calendar/grids/index.tsx | 3 ++ .../calendar/grids/interfaces.ts | 2 + src/date-range-picker/calendar/index.tsx | 2 + src/date-range-picker/calendar/interfaces.ts | 1 + src/date-range-picker/dropdown.tsx | 3 ++ src/date-range-picker/index.tsx | 3 ++ src/dropdown/internal.tsx | 4 +- src/tooltip/internal.tsx | 9 +++- 15 files changed, 129 insertions(+), 11 deletions(-) diff --git a/src/calendar/grid/index.tsx b/src/calendar/grid/index.tsx index 6bb82b18b1..1cc76e36c0 100644 --- a/src/calendar/grid/index.tsx +++ b/src/calendar/grid/index.tsx @@ -47,22 +47,24 @@ export interface GridProps { renderDateAnnouncement: (date: Date, isOnCurrentDate: boolean) => string; isSameDate: (date: Date, baseDate: Date) => boolean; onGridKeyDownHandler: (event: React.KeyboardEvent) => void; + referrerId?: string; } interface GridCellProps extends TdHTMLAttributes { disabledReason?: string; + referrerId?: string; } const GridCell = forwardRef((props: GridCellProps, focusedDateRef: React.Ref) => { - const { disabledReason, ...rest } = props; + const { disabledReason, referrerId, ...rest } = props; const isDisabledWithReason = !!disabledReason; const { targetProps, descriptionEl } = useHiddenDescription(disabledReason); - const ref = useRef(null); + const cellRef = useRef(null); const [showTooltip, setShowTooltip] = useState(false); return ( (isDisabledWithReason ? setShowTooltip(true) : undefined)} @@ -77,9 +79,10 @@ const GridCell = forwardRef((props: GridCellProps, focusedDateRef: React.Ref ref.current} + getTrack={() => cellRef.current} content={disabledReason!} onEscape={() => setShowTooltip(false)} + referrerId={referrerId} /> )} @@ -105,6 +108,7 @@ export default function Grid({ renderDateAnnouncement, isSameDate, onGridKeyDownHandler, + referrerId, }: GridProps) { const focusedDateRef = useRef(null); @@ -166,6 +170,7 @@ export default function Grid({ [styles['calendar-date-dense']]: denseGrid, })} disabledReason={isDisabledWithReason ? disabledReason : undefined} + referrerId={referrerId} >