UNPKG

@kiwicom/orbit-components

Version:

Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.

92 lines (90 loc) 3.36 kB
import * as React from "react"; import styled from "styled-components"; import { SIZE_OPTIONS } from "../../InputField/consts"; import PlusCircle from "../../icons/PlusCircle"; import MinusCircle from "../../icons/MinusCircle"; import ButtonLink from "../../ButtonLink"; import InputField, { Input, Prefix } from "../../InputField"; import defaultTheme from "../../defaultTheme"; import getSpacingToken from "../../common/getSpacingToken"; var StyledInputStepper = styled.div.withConfig({ displayName: "InputStepperStateless__StyledInputStepper", componentId: "ymyi85-0" })(["width:100%;margin-bottom:", ";", "{text-align:center;&[type=\"number\"]{-moz-appearance:textfield;}}", "{padding:0;pointer-events:auto;}"], getSpacingToken, Input, Prefix); StyledInputStepper.defaultProps = { theme: defaultTheme }; var InputStepperStateless = function InputStepperStateless(_ref) { var label = _ref.label, error = _ref.error, onBlur = _ref.onBlur, onFocus = _ref.onFocus, onChange = _ref.onChange, onKeyDown = _ref.onKeyDown, help = _ref.help, disabled = _ref.disabled, name = _ref.name, dataTest = _ref.dataTest, _ref$size = _ref.size, size = _ref$size === void 0 ? SIZE_OPTIONS.NORMAL : _ref$size, maxValue = _ref.maxValue, minValue = _ref.minValue, required = _ref.required, tabIndex = _ref.tabIndex, forwardedRef = _ref.forwardedRef, spaceAfter = _ref.spaceAfter, value = _ref.value, onDecrement = _ref.onDecrement, onIncrement = _ref.onIncrement, disabledIncrement = _ref.disabledIncrement, disabledDecrement = _ref.disabledDecrement, titleIncrement = _ref.titleIncrement, titleDecrement = _ref.titleDecrement; return /*#__PURE__*/React.createElement(StyledInputStepper, { spaceAfter: spaceAfter }, /*#__PURE__*/React.createElement(InputField, { dataTest: dataTest, size: size, label: label, disabled: disabled, required: required, name: name, error: error, help: help, type: typeof value === "number" ? "number" : "text", onChange: onChange, onBlur: onBlur, onFocus: onFocus, onKeyDown: onKeyDown, value: value, minValue: minValue, maxValue: maxValue, tabIndex: tabIndex, ref: forwardedRef, prefix: /*#__PURE__*/React.createElement(ButtonLink, { type: "primary", disabled: disabledDecrement || disabled || typeof value === "number" && value <= +minValue, compact: true, iconLeft: /*#__PURE__*/React.createElement(MinusCircle, null), size: size, onClick: !disabled ? onDecrement : undefined, title: titleDecrement, asComponent: function asComponent(props) { return /*#__PURE__*/React.createElement("div", props); } }), suffix: /*#__PURE__*/React.createElement(ButtonLink, { disabled: disabledIncrement || disabled || typeof value === "number" && value >= +maxValue, type: "primary", compact: true, iconLeft: /*#__PURE__*/React.createElement(PlusCircle, null), size: size, onClick: !disabled ? onIncrement : undefined, title: titleIncrement, asComponent: function asComponent(props) { return /*#__PURE__*/React.createElement("div", props); } }) })); }; export default InputStepperStateless;