UNPKG

@brizy/ui

Version:
31 lines (30 loc) 2.71 kB
import React, { useCallback } from "react"; import AntInputNumber from "antd/lib/input-number"; import { classNames } from "../classNamesFn"; import { getFieldsStyleTheme } from "../utils/getFieldsTheme"; import { WrapperForDisabled } from "./WrapperForDisabled"; import { BRZ_PREFIX } from "../constants"; export const Number = (props) => { const { onChange, value, min, max, size, placeholder, disabled, step, precision, parser, formatter, decimalSeparator, onPressEnter, onBlur, onFocus, theme, prefix, suffix, addonAfter, addonBefore, stepButtons, } = props; const _onChange = useCallback(e => onChange(typeof e === "string" ? undefined : (e !== null && e !== void 0 ? e : undefined)), [onChange]); const className = classNames()("input-form", "input__number", { "input__number__buttons-disabled": stepButtons === false, }); if (suffix || prefix || addonAfter || addonBefore) { const containerClassName = classNames()("input__number--custom", { "input__number--custom--prefix": prefix, "input__number--custom--suffix": suffix, "input__number--custom--addonAfter": addonAfter, "input__number--custom--addonBefore": addonBefore, "input__number--custom--disabled": disabled, }); return (React.createElement("div", { className: containerClassName, style: getFieldsStyleTheme(theme) }, addonBefore && React.createElement("div", { className: `${BRZ_PREFIX}-input__number--addonBefore` }, addonBefore), prefix && React.createElement("div", { className: `${BRZ_PREFIX}-input__number--prefix` }, prefix), React.createElement(AntInputNumber, { className: className, onChange: _onChange, value: value, min: min, max: max, size: size, placeholder: placeholder, disabled: disabled, step: step, precision: precision, parser: parser, formatter: formatter, decimalSeparator: decimalSeparator, onPressEnter: onPressEnter, onBlur: onBlur, onFocus: onFocus }), suffix && React.createElement("span", { className: `${BRZ_PREFIX}-input__number--suffix` }, suffix), addonAfter && React.createElement("div", { className: `${BRZ_PREFIX}-input__number--addonAfter` }, addonAfter))); } return (React.createElement(WrapperForDisabled, { disabled: disabled }, React.createElement(AntInputNumber, { className: className, style: getFieldsStyleTheme(theme), onChange: _onChange, value: value, min: min, max: max, size: size, placeholder: placeholder, disabled: disabled, step: step, precision: precision, parser: parser, formatter: formatter, decimalSeparator: decimalSeparator, onPressEnter: onPressEnter, onBlur: onBlur, onFocus: onFocus }))); };