Skip to content

Commit fabc664

Browse files
Clean
1 parent c918d78 commit fabc664

File tree

3 files changed

+17
-25
lines changed

3 files changed

+17
-25
lines changed

packages/x-scheduler/src/event-calendar/mini-calendar/MiniCalendar.tsx

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { SchedulerProcessedDate, TemporalSupportedObject } from '@mui/x-schedule
1717
import { MiniCalendarProps } from './MiniCalendar.types';
1818
import { useTranslations } from '../../internals/utils/TranslationsContext';
1919
import { useEventCalendarClasses } from '../EventCalendarClassesContext';
20+
import { formatMonthFullLetterAndYear } from '../../internals/utils/date-utils';
2021

2122
const MiniCalendarRoot = styled('div', {
2223
name: 'MuiEventCalendar',
@@ -187,26 +188,7 @@ export const MiniCalendar = React.forwardRef<HTMLDivElement, MiniCalendarProps>(
187188
// Get weekday headers from first week
188189
const weekdays = weeks[0] ?? [];
189190

190-
const handlePreviousMonth = React.useCallback(() => {
191-
setDisplayedMonth((prev) => adapter.addMonths(prev, -1));
192-
}, [adapter]);
193-
194-
const handleNextMonth = React.useCallback(() => {
195-
setDisplayedMonth((prev) => adapter.addMonths(prev, 1));
196-
}, [adapter]);
197-
198-
const handleDayClick = React.useCallback(
199-
(day: TemporalSupportedObject, event: React.MouseEvent) => {
200-
store.goToDate(day, event);
201-
},
202-
[store],
203-
);
204-
205-
// Format month and year label (e.g., "May 2025")
206-
const monthYearLabel = React.useMemo(() => {
207-
const f = adapter.formats;
208-
return adapter.formatByString(displayedMonth, `${f.monthFullLetter} ${f.yearPadded}`);
209-
}, [adapter, displayedMonth]);
191+
const monthYearLabel = React.useMemo(() => formatMonthFullLetterAndYear(displayedMonth, adapter), [adapter, displayedMonth]);
210192

211193
return (
212194
<MiniCalendarRoot
@@ -224,14 +206,14 @@ export const MiniCalendar = React.forwardRef<HTMLDivElement, MiniCalendarProps>(
224206
<IconButton
225207
size="small"
226208
aria-label={translations.miniCalendarGoToPreviousMonth}
227-
onClick={handlePreviousMonth}
209+
onClick={() => setDisplayedMonth((prev) => adapter.addMonths(prev, -1))}
228210
>
229211
<ChevronLeftIcon fontSize="small" />
230212
</IconButton>
231213
<IconButton
232214
size="small"
233215
aria-label={translations.miniCalendarGoToNextMonth}
234-
onClick={handleNextMonth}
216+
onClick={() => setDisplayedMonth((prev) => adapter.addMonths(prev, 1))}
235217
>
236218
<ChevronRightIcon fontSize="small" />
237219
</IconButton>
@@ -281,7 +263,7 @@ export const MiniCalendar = React.forwardRef<HTMLDivElement, MiniCalendarProps>(
281263
aria-current={isToday ? 'date' : undefined}
282264
aria-selected={isActive}
283265
tabIndex={isActive ? 0 : -1}
284-
onClick={(event) => handleDayClick(day.value, event)}
266+
onClick={(event) => store.goToDate(day.value, event)}
285267
>
286268
{adapter.formatByString(day.value, adapter.formats.dayOfMonth)}
287269
</MiniCalendarDayButton>

packages/x-scheduler/src/internals/utils/date-utils.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ export function formatMonthAndDayOfMonth(date: TemporalSupportedObject, adapter:
2121
return adapter.formatByString(date, dateFormat);
2222
}
2323

24+
/**
25+
* @example "13 December"
26+
*/
2427
export function formatDayOfMonthAndMonthFullLetter(
2528
date: TemporalSupportedObject,
2629
adapter: Adapter,
@@ -31,6 +34,13 @@ export function formatDayOfMonthAndMonthFullLetter(
3134
return adapter.formatByString(date, dateFormat);
3235
}
3336

37+
export function formatMonthFullLetterAndYear(date: TemporalSupportedObject, adapter: Adapter) {
38+
const f = adapter.formats;
39+
const dateFormat = `${f.monthFullLetter} ${f.yearPadded}`;
40+
41+
return adapter.formatByString(date, dateFormat);
42+
}
43+
3444
/**
3545
* @example "1:30 PM" or "13:30"
3646
*/

packages/x-scheduler/src/month-view/month-view-row/MonthViewCell.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { DayGridEvent } from '../../internals/components/event/day-grid-event/Da
2020
import { useTranslations } from '../../internals/utils/TranslationsContext';
2121
import { MoreEventsPopoverTrigger } from '../../internals/components/more-events-popover/MoreEventsPopover';
2222
import { useEventCreationProps } from '../../internals/hooks/useEventCreationProps';
23-
import { formatMonthAndDayOfMonth } from '../../internals/utils/date-utils';
23+
import { formatMonth3LetterAndDayOfMonth } from '../../internals/utils/date-utils';
2424
import { isOccurrenceAllDayOrMultipleDay } from '../../internals/utils/event-utils';
2525
import { EventDraggableDialogTrigger } from '../../internals/components/event-draggable-dialog';
2626
import { useEventDraggableDialogContext } from '../../internals/components/event-draggable-dialog/EventDraggableDialog';
@@ -201,7 +201,7 @@ export const MonthViewCell = React.forwardRef(function MonthViewCell(
201201
const cellNumberContent = (
202202
<MonthViewCellNumber className={classes.monthViewCellNumber}>
203203
{isFirstDayOfMonth
204-
? formatMonthAndDayOfMonth(day.value, adapter)
204+
? formatMonth3LetterAndDayOfMonth(day.value, adapter)
205205
: adapter.format(day.value, 'dayOfMonth')}
206206
</MonthViewCellNumber>
207207
);

0 commit comments

Comments
 (0)