rsuite
Version:
A suite of react components
47 lines (42 loc) • 1.96 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
import React from 'react';
import PropTypes from 'prop-types';
import { DateUtils, useClassNames, useCustom } from '../utils';
import Table from './Table';
import { useCalendarContext } from './CalendarContext';
var CalendarBody = /*#__PURE__*/React.forwardRef(function (props, ref) {
var _props$as = props.as,
Component = _props$as === void 0 ? 'div' : _props$as,
className = props.className,
_props$classPrefix = props.classPrefix,
classPrefix = _props$classPrefix === void 0 ? 'calendar-body' : _props$classPrefix,
rest = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix"]);
var _useCalendarContext = useCalendarContext(),
_useCalendarContext$d = _useCalendarContext.date,
date = _useCalendarContext$d === void 0 ? new Date() : _useCalendarContext$d,
isoWeek = _useCalendarContext.isoWeek,
overrideLocale = _useCalendarContext.locale;
var _useCustom = useCustom('Calendar', overrideLocale),
locale = _useCustom.locale,
formatDate = _useCustom.formatDate;
var thisMonthDate = DateUtils.setDate(date, 1);
var _useClassNames = useClassNames(classPrefix),
merge = _useClassNames.merge,
withClassPrefix = _useClassNames.withClassPrefix;
var classes = merge(className, withClassPrefix());
return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
ref: ref,
className: classes
}), /*#__PURE__*/React.createElement(Table, {
rows: DateUtils.getMonthView(thisMonthDate, isoWeek),
"aria-label": formatDate(thisMonthDate, locale.formattedMonthPattern)
}));
});
CalendarBody.displayName = 'CalendarBody';
CalendarBody.propTypes = {
as: PropTypes.elementType,
className: PropTypes.string,
classPrefix: PropTypes.string
};
export default CalendarBody;