wix-style-react
Version:
68 lines (57 loc) • 2.11 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _YearDropdownSt = require("./YearDropdown.st.css");
var _range = _interopRequireDefault(require("../../../utils/operators/range"));
var _setYear = _interopRequireDefault(require("date-fns/setYear"));
var _DatePickerDropdown = _interopRequireDefault(require("../../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((0, _range["default"])(year > upperLimit ? year : upperLimit, lowerLimit));
var selectedYear = years.find(function (_ref2) {
var value = _ref2.value;
return value === year;
});
return /*#__PURE__*/_react["default"].createElement(_DatePickerDropdown["default"], {
dataHook: "datepicker-year-dropdown",
className: (0, _YearDropdownSt.st)(_YearDropdownSt.classes.root, className),
caption: selectedYear.value,
options: years,
selectedId: selectedYear.id,
onChange: function onChange(_ref3) {
var value = _ref3.value;
return _onChange((0, _setYear["default"])(date, value));
},
ariaLabel: ariaLabel,
ariaLabelledBy: ariaLabelledBy
});
};
YearDropdown.propTypes = {
className: _propTypes["default"].string,
date: _propTypes["default"].object.isRequired,
onChange: _propTypes["default"].func.isRequired,
ariaLabel: _propTypes["default"].string,
ariaLabelledBy: _propTypes["default"].string
};
var _default = YearDropdown;
exports["default"] = _default;