From c3278a3bf4b7767fec27789ed4ef763ab0b920b4 Mon Sep 17 00:00:00 2001 From: Patrick Fricano Date: Mon, 23 Jun 2025 10:26:47 -0700 Subject: [PATCH 1/2] change day key field to dateString to prevent collisions when switching months --- src/calendar/index.tsx | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/calendar/index.tsx b/src/calendar/index.tsx index c2a0b3ac3..d92ddc510 100644 --- a/src/calendar/index.tsx +++ b/src/calendar/index.tsx @@ -188,9 +188,11 @@ const Calendar = (props: CalendarProps & ContextProp) => { ); }; - const renderDay = (day: XDate, id: number) => { + const renderDay = (day: XDate) => { + const key = String(day); + if (!sameMonth(day, currentMonth) && hideExtraDays) { - return ; + return ; } const dayProps = extractDayProps(props); @@ -198,7 +200,7 @@ const Calendar = (props: CalendarProps & ContextProp) => { const disableDaySelection = isEmpty(props.context); return ( - + { ); }; - const renderWeek = (days: XDate[], id: number) => { + const renderWeek = (days: XDate[]) => { const week: JSX.Element[] = []; + const key = String(days[0]); - days.forEach((day: XDate, id2: number) => { - week.push(renderDay(day, id2)); + days.forEach((day: XDate) => { + week.push(renderDay(day)); }, this); if (props.showWeekNumbers) { @@ -224,7 +227,7 @@ const Calendar = (props: CalendarProps & ContextProp) => { } return ( - + {week} ); @@ -236,7 +239,7 @@ const Calendar = (props: CalendarProps & ContextProp) => { const weeks: JSX.Element[] = []; while (days.length) { - weeks.push(renderWeek(days.splice(0, 7), weeks.length)); + weeks.push(renderWeek(days.splice(0, 7))); } return {weeks}; From cae7a63a3234b942e7ab031b7cc9aa8e4643337c Mon Sep 17 00:00:00 2001 From: Patrick Fricano Date: Mon, 30 Jun 2025 12:55:47 -0700 Subject: [PATCH 2/2] add currentmonth to key string --- src/calendar/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/calendar/index.tsx b/src/calendar/index.tsx index d92ddc510..f3768557d 100644 --- a/src/calendar/index.tsx +++ b/src/calendar/index.tsx @@ -189,7 +189,7 @@ const Calendar = (props: CalendarProps & ContextProp) => { }; const renderDay = (day: XDate) => { - const key = String(day); + const key = `${currentMonth.toISOString()}-${day.getDate()}`; if (!sameMonth(day, currentMonth) && hideExtraDays) { return ; @@ -216,7 +216,7 @@ const Calendar = (props: CalendarProps & ContextProp) => { const renderWeek = (days: XDate[]) => { const week: JSX.Element[] = []; - const key = String(days[0]); + const key = `${currentMonth.toISOString()}-${days[0].getDate()}`; days.forEach((day: XDate) => { week.push(renderDay(day));