UNPKG

react-native-calendars-datepicker

Version:

Customizable date picker for React Native that supports Hijri calendar

48 lines 2.02 kB
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