UNPKG

@helpscout/hsds-react

Version:

React component library for Help Scout's Design System

91 lines (73 loc) 3.74 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _Datepicker = require("./Datepicker.constants"); var _Datepicker2 = require("./Datepicker.utils"); var _Icon = _interopRequireDefault(require("../Icon")); var _VisuallyHidden = _interopRequireDefault(require("../VisuallyHidden")); var _Datepicker3 = require("./Datepicker.css"); var _jsxRuntime = require("react/jsx-runtime"); function noop() {} function Navigator(_ref) { var _ref$canNavigateForwa = _ref.canNavigateForward, canNavigateForward = _ref$canNavigateForwa === void 0 ? true : _ref$canNavigateForwa, _ref$goPrevious = _ref.goPrevious, goPrevious = _ref$goPrevious === void 0 ? noop : _ref$goPrevious, _ref$goNext = _ref.goNext, goNext = _ref$goNext === void 0 ? noop : _ref$goNext, _ref$navigationLevel = _ref.navigationLevel, navigationLevel = _ref$navigationLevel === void 0 ? 'MONTH_BY_MONTH' : _ref$navigationLevel, label = _ref.label, _ref$onDeepNavigation = _ref.onDeepNavigationClick, onDeepNavigationClick = _ref$onDeepNavigation === void 0 ? noop : _ref$onDeepNavigation; return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Datepicker3.NavigatorUI, { className: (0, _classnames.default)('c-DatepickerNavigator', navigationLevel === _Datepicker.NAVIGATION_LEVELS.YEAR_RANGES && 'is-at-top-level'), children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Datepicker3.SequentialNavButtonUI, { className: "SequentialNavButton go-previous", "aria-label": (0, _Datepicker2.getNavigatorButtonLabel)(navigationLevel, 'previous'), onClick: goPrevious, type: "button", children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, { name: "arrow-left-single-large" }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_VisuallyHidden.default, { children: (0, _Datepicker2.getNavigatorButtonLabel)(navigationLevel, 'previous') })] }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Datepicker3.DeepNavigatorButtonUI, { className: "DeepNavigatorButton", onClick: onDeepNavigationClick, disabled: navigationLevel === _Datepicker.NAVIGATION_LEVELS.YEAR_RANGES, "aria-live": "polite", type: "button", children: label }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Datepicker3.SequentialNavButtonUI, { className: "SequentialNavButton go-next", onClick: goNext, disabled: !canNavigateForward, "aria-label": (0, _Datepicker2.getNavigatorButtonLabel)(navigationLevel, 'next'), type: "button", children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, { name: "arrow-right-single-large" }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_VisuallyHidden.default, { children: (0, _Datepicker2.getNavigatorButtonLabel)(navigationLevel, 'next') })] })] }); } Navigator.propTypes = { /** Whether is possible to pick a date in the future */ canNavigateForward: _propTypes.default.bool, /** Callback to navigate to the previous period */ goPrevious: _propTypes.default.func, /** Callback to navigate to the next period */ goNext: _propTypes.default.func, /** Whether we are currently at the highest possible level of navigation */ navigationLevel: _propTypes.default.oneOf(['MONTH_BY_MONTH', 'YEAR_BY_YEAR', 'YEAR_RANGES']), /** Callback to navigate to the next level of navigation */ onDeepNavigationClick: _propTypes.default.func }; var _default = Navigator; exports.default = _default;