react-native-calendars-datepicker
Version:
Customizable date picker for React Native that supports Hijri calendar
48 lines • 2.02 kB
JavaScript
import React, { memo } from 'react';
import { Pressable, StyleSheet, Text, View } from 'react-native';
import { useCalendarContext } from '../../calendar-context';
import { formatNumber, adjustDayjsHijriDate, getYearRange } from '../../utils';
import dayjs from 'dayjs';
const YearButton = () => {
const {
currentDate,
calendarView,
setCalendarView,
currentYear,
onChangeYear,
styles,
classNames,
disableYearPicker,
calendar = 'gregory',
numerals = 'latn'
} = useCalendarContext();
const years = getYearRange(currentYear);
let date = calendar === 'jalali' ? dayjs(currentDate).calendar(calendar) : dayjs(currentDate).toCalendarSystem('gregory');
if (calendar === 'islamic') {
date = currentDate.$C === 'islamic' ? currentDate : adjustDayjsHijriDate(currentDate);
}
return /*#__PURE__*/React.createElement(Pressable, {
disabled: disableYearPicker,
onPress: () => {
setCalendarView(calendarView === 'year' ? 'day' : 'year');
onChangeYear(date.year());
},
testID: "btn-year",
accessibilityRole: "button",
accessibilityLabel: date.format('YYYY')
}, /*#__PURE__*/React.createElement(View, {
style: [defaultStyles.container, styles === null || styles === void 0 ? void 0 : styles.year_selector],
className: classNames === null || classNames === void 0 ? void 0 : classNames.year_selector
}, /*#__PURE__*/React.createElement(Text, {
style: styles === null || styles === void 0 ? void 0 : styles.year_selector_label,
className: classNames === null || classNames === void 0 ? void 0 : classNames.year_selector_label
}, calendarView === 'year' ? `${formatNumber(years[0] || 0, numerals)} - ${formatNumber(years[years.length - 1] || 0, numerals)}` : formatNumber(parseInt(date.format('YYYY')), numerals))));
};
export default /*#__PURE__*/memo(YearButton);
const defaultStyles = StyleSheet.create({
container: {
alignItems: 'center',
justifyContent: 'center'
}
});
//# sourceMappingURL=year-button.js.map