@brizy/ui
Version:
React elements in Brizy style
31 lines (30 loc) • 2.71 kB
JavaScript
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 })));
};