@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
JavaScript
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;