rsuite
Version:
A suite of react components
42 lines (40 loc) • 1.17 kB
JavaScript
'use client';
;
exports.__esModule = true;
exports.useCalendar = void 0;
var _react = require("react");
var _CalendarProvider = require("../CalendarProvider");
const useCalendar = () => {
const {
locale,
showWeekNumbers,
isoWeek,
weekStart: weekStartProp,
...rest
} = (0, _react.useContext)(_CalendarProvider.CalendarContext);
// Determine the start of the week based on various conditions
const weekStart = (0, _react.useMemo)(() => {
// If weekStartProp is explicitly provided, use it
if (typeof weekStartProp !== 'undefined') {
return weekStartProp;
}
// If using ISO week, start on Monday (1)
else if (isoWeek) {
return 1;
}
// If locale specifies a weekStartsOn option, use it
else if (locale?.dateLocale?.options?.weekStartsOn !== undefined) {
return locale.dateLocale.options.weekStartsOn;
}
// Default to Sunday (0) if no other condition is met
return 0;
}, [weekStartProp, isoWeek, locale?.dateLocale?.options?.weekStartsOn]);
return {
locale,
showWeekNumbers,
isoWeek,
weekStart,
...rest
};
};
exports.useCalendar = useCalendar;