UNPKG

wix-style-react

Version:
53 lines (50 loc) 1.58 kB
import React from 'react'; import PropTypes from 'prop-types'; import { classes, st } from './YearDropdown.st.css'; import range from '../../../utils/operators/range'; import setYear from 'date-fns/setYear'; import DatePickerDropdown from '../../DatePickerDropdown'; var optionsOf = function optionsOf(items) { return items.map(function (item, index) { return { value: item, id: index }; }); }; var YearDropdown = function YearDropdown(_ref) { var className = _ref.className, date = _ref.date, _onChange = _ref.onChange, ariaLabel = _ref.ariaLabel, ariaLabelledBy = _ref.ariaLabelledBy; var year = date.getFullYear(); var lowerLimit = 1899, upperLimit = 2028; var years = optionsOf(range(year > upperLimit ? year : upperLimit, lowerLimit)); var selectedYear = years.find(function (_ref2) { var value = _ref2.value; return value === year; }); return /*#__PURE__*/React.createElement(DatePickerDropdown, { dataHook: "datepicker-year-dropdown", className: st(classes.root, className), caption: selectedYear.value, options: years, selectedId: selectedYear.id, onChange: function onChange(_ref3) { var value = _ref3.value; return _onChange(setYear(date, value)); }, ariaLabel: ariaLabel, ariaLabelledBy: ariaLabelledBy }); }; YearDropdown.propTypes = { className: PropTypes.string, date: PropTypes.object.isRequired, onChange: PropTypes.func.isRequired, ariaLabel: PropTypes.string, ariaLabelledBy: PropTypes.string }; export default YearDropdown;