react-native-calendars-datepicker
Version:
Customizable date picker for React Native that supports Hijri calendar
39 lines • 1.82 kB
JavaScript
import React, { memo } from 'react';
import dayjs from 'dayjs';
import { Pressable, Text, View } from 'react-native';
import { useCalendarContext } from '../../calendar-context';
import { adjustDayjsHijriDate, isValidJalaliLocale } from '../../utils';
const MonthButton = () => {
var _date;
const {
currentDate,
calendarView,
setCalendarView,
calendar = 'gregory',
locale,
styles,
classNames,
disableMonthPicker,
monthCaptionFormat
} = useCalendarContext();
let date = calendar === 'jalali' ? dayjs(currentDate).calendar(calendar) : dayjs(currentDate).toCalendarSystem('gregory');
if (calendar === 'islamic') {
date = currentDate.$C === 'islamic' ? currentDate : adjustDayjsHijriDate(currentDate);
}
const currentMonthText = (_date = date) === null || _date === void 0 ? void 0 : _date.locale(calendar === 'jalali' && !isValidJalaliLocale(locale) ? 'en' : locale).format(monthCaptionFormat === 'full' ? 'MMMM' : 'MMM');
return /*#__PURE__*/React.createElement(Pressable, {
disabled: disableMonthPicker,
onPress: () => setCalendarView(calendarView === 'month' ? 'day' : 'month'),
testID: "btn-month",
accessibilityRole: "button",
accessibilityLabel: currentMonthText
}, /*#__PURE__*/React.createElement(View, {
style: styles === null || styles === void 0 ? void 0 : styles.month_selector,
className: classNames === null || classNames === void 0 ? void 0 : classNames.month_selector
}, /*#__PURE__*/React.createElement(Text, {
style: styles === null || styles === void 0 ? void 0 : styles.month_selector_label,
className: classNames === null || classNames === void 0 ? void 0 : classNames.month_selector_label
}, currentMonthText)));
};
export default /*#__PURE__*/memo(MonthButton);
//# sourceMappingURL=month-button.js.map