Skip to content

Commit 73bbc40

Browse files
authored
remove internal contexts from RAC Calendar (#7593)
1 parent e4497fd commit 73bbc40

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

Diff for: packages/react-aria-components/src/Calendar.tsx

+7-9
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import {
2626
import {ButtonContext} from './Button';
2727
import {CalendarDate, createCalendar, DateDuration, endOfMonth, getWeeksInMonth, isSameDay, isSameMonth} from '@internationalized/date';
2828
import {CalendarState, RangeCalendarState, useCalendarState, useRangeCalendarState} from 'react-stately';
29-
import {ContextValue, DOMProps, Provider, RenderProps, SlotProps, StyleProps, useContextProps, useRenderProps} from './utils';
29+
import {ContextValue, DOMProps, Provider, RenderProps, SlotProps, StyleProps, useContextProps, useRenderProps, useSlottedContext} from './utils';
3030
import {DOMAttributes, FocusableElement, forwardRefType, HoverEvents} from '@react-types/shared';
3131
import {filterDOMProps} from '@react-aria/utils';
3232
import {HeadingContext} from './RSPContexts';
@@ -73,12 +73,10 @@ export interface RangeCalendarProps<T extends DateValue> extends Omit<AriaRangeC
7373
visibleDuration?: DateDuration
7474
}
7575

76-
export const CalendarContext = createContext<ContextValue<CalendarProps<any>, HTMLDivElement>>({});
77-
export const RangeCalendarContext = createContext<ContextValue<RangeCalendarProps<any>, HTMLDivElement>>({});
76+
export const CalendarContext = createContext<ContextValue<CalendarProps<any>, HTMLDivElement>>(null);
77+
export const RangeCalendarContext = createContext<ContextValue<RangeCalendarProps<any>, HTMLDivElement>>(null);
7878
export const CalendarStateContext = createContext<CalendarState | null>(null);
7979
export const RangeCalendarStateContext = createContext<RangeCalendarState | null>(null);
80-
const InternalCalendarContext = createContext<CalendarProps<any> | null>(null);
81-
const InternalRangeCalendarContext = createContext<RangeCalendarProps<any> | null>(null);
8280

8381
/**
8482
* A calendar displays one or more date grids and allows users to select a single date.
@@ -122,7 +120,7 @@ export const Calendar = /*#__PURE__*/ (forwardRef as forwardRefType)(function Ca
122120
}],
123121
[HeadingContext, {'aria-hidden': true, level: 2, children: title}],
124122
[CalendarStateContext, state],
125-
[InternalCalendarContext, props],
123+
[CalendarContext, props as CalendarProps<any>],
126124
[TextContext, {
127125
slots: {
128126
errorMessage: errorMessageProps
@@ -199,7 +197,7 @@ export const RangeCalendar = /*#__PURE__*/ (forwardRef as forwardRefType)(functi
199197
}],
200198
[HeadingContext, {'aria-hidden': true, level: 2, children: title}],
201199
[RangeCalendarStateContext, state],
202-
[InternalRangeCalendarContext, props],
200+
[RangeCalendarContext, props as RangeCalendarProps<any>],
203201
[TextContext, {
204202
slots: {
205203
errorMessage: errorMessageProps
@@ -343,8 +341,8 @@ const InternalCalendarGridContext = createContext<InternalCalendarGridContextVal
343341
export const CalendarGrid = /*#__PURE__*/ (forwardRef as forwardRefType)(function CalendarGrid(props: CalendarGridProps, ref: ForwardedRef<HTMLTableElement>) {
344342
let calendarState = useContext(CalendarStateContext);
345343
let rangeCalendarState = useContext(RangeCalendarStateContext);
346-
let calenderProps = useContext(InternalCalendarContext)!;
347-
let rangeCalenderProps = useContext(InternalRangeCalendarContext)!;
344+
let calenderProps = useSlottedContext(CalendarContext)!;
345+
let rangeCalenderProps = useSlottedContext(RangeCalendarContext)!;
348346
let state = calendarState ?? rangeCalendarState!;
349347
let startDate = state.visibleRange.start;
350348
if (props.offset) {

0 commit comments

Comments
 (0)