UNPKG

@geezee/react-ui

Version:

Modern and minimalist React UI library.

103 lines (99 loc) 4.67 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; import * as React from 'react'; import { useMemo } from 'react'; import { Calendar, Clock, Minus } from '@zeit-ui/react-icons'; import { RangePicker as RCRangePicker } from '@geezee/rc-picker'; import { getLocale, getRangePlaceholder } from '../util'; import { Components, getTimeProps } from '.'; import InputClearIcon from '../../input/input-icon-clear'; import InputIcon from '../../input/input-icon'; import { getSizes } from '../../input/styles'; import withStyle from './with-style'; export default function generateRangePicker(generateConfig) { var Picker = function Picker(props) { var forwardedRef = props.forwardedRef, customizePrefixCls = props.prefixCls, customGetPopupContainer = props.getPopupContainer, _props$className = props.className, className = _props$className === void 0 ? '' : _props$className, _props$locale = props.locale, locale = _props$locale === void 0 ? 'en-US' : _props$locale, _props$size = props.size, customizeSize = _props$size === void 0 ? 'medium' : _props$size, _props$variant = props.variant, customizeVariant = _props$variant === void 0 ? 'line' : _props$variant, _props$color = props.color, customizeColor = _props$color === void 0 ? 'default' : _props$color, _props$bordered = props.bordered, bordered = _props$bordered === void 0 ? true : _props$bordered, placeholder = props.placeholder, restProps = _objectWithoutProperties(props, ["forwardedRef", "prefixCls", "getPopupContainer", "className", "locale", "size", "variant", "color", "bordered", "placeholder"]); var _ref = props, format = _ref.format, showTime = _ref.showTime, picker = _ref.picker; var prefixCls = "".concat(customizePrefixCls || 'cfx', "-picker"); var _useMemo = useMemo(function () { return getSizes(customizeSize); }, [customizeSize]), inputHeightRatio = _useMemo.heightRatio; var additionalOverrideProps = {}; additionalOverrideProps = _extends(_extends(_extends({}, additionalOverrideProps), showTime ? getTimeProps(_extends({ format: format, picker: picker }, showTime)) : {}), picker === 'time' ? getTimeProps(_extends(_extends({ format: format }, props), {}, { picker: picker })) : {}); return /*#__PURE__*/React.createElement(RCRangePicker, _extends({ ref: forwardedRef, separator: /*#__PURE__*/React.createElement("span", { "aria-label": "to", className: "".concat(prefixCls, "-separator") }, /*#__PURE__*/React.createElement(Minus, null)), placeholder: getRangePlaceholder(picker, locale, placeholder), suffixIcon: picker === 'time' ? /*#__PURE__*/React.createElement(InputIcon, { icon: /*#__PURE__*/React.createElement(Clock, null), ratio: inputHeightRatio, clickable: false }) : /*#__PURE__*/React.createElement(InputIcon, { icon: /*#__PURE__*/React.createElement(Calendar, null), ratio: inputHeightRatio, clickable: false }), clearIcon: /*#__PURE__*/React.createElement(InputIcon, { icon: /*#__PURE__*/React.createElement(InputClearIcon, { visible: true, heightRatio: inputHeightRatio }), ratio: inputHeightRatio, clickable: false }), allowClear: true, transitionName: "slide-up" }, restProps, additionalOverrideProps, { className: "".concat(prefixCls, "-size-").concat(customizeSize, " ").concat(prefixCls, "-variant-").concat(customizeVariant, " ").concat(prefixCls, "-color-").concat(customizeColor, " ").concat(!bordered ? "".concat(prefixCls, "-borderless") : '', " ").concat(className), locale: getLocale(locale), prefixCls: prefixCls, getPopupContainer: customGetPopupContainer, generateConfig: generateConfig, prevIcon: /*#__PURE__*/React.createElement("span", { className: "".concat(prefixCls, "-prev-icon") }), nextIcon: /*#__PURE__*/React.createElement("span", { className: "".concat(prefixCls, "-next-icon") }), superPrevIcon: /*#__PURE__*/React.createElement("span", { className: "".concat(prefixCls, "-super-prev-icon") }), superNextIcon: /*#__PURE__*/React.createElement("span", { className: "".concat(prefixCls, "-super-next-icon") }), components: Components, direction: "ltr" })); }; return withStyle(React.memo(Picker)); }