@brizy/ui
Version:
React elements in Brizy style
23 lines (22 loc) • 1.44 kB
JavaScript
import React, { useCallback, useEffect, useRef } from "react";
import { classNames } from "../classNamesFn";
import AntInput from "antd/lib/input/Input";
import { getFieldsStyleTheme } from "../utils/getFieldsTheme";
import { WrapperForDisabled } from "./WrapperForDisabled";
export const Text = (props) => {
const { value, size, suffix, prefix, onPressEnter, placeholder, onBlur, onFocus, theme, focused, disabled, border, name, onChange, addonAfter, addonBefore, } = props;
const input = useRef(null);
const className = classNames()("input-form", "input__text", {
[`input__text--${border}`]: border,
});
const handleChange = useCallback((e) => {
if (!disabled)
onChange === null || onChange === void 0 ? void 0 : onChange(e.target.value);
}, [onChange, disabled]);
useEffect(() => {
if (focused && input.current && document.activeElement !== input.current.input)
input.current.focus();
}, [focused, input]);
return (React.createElement(WrapperForDisabled, { disabled: disabled },
React.createElement(AntInput, { ref: input, value: value, size: size, suffix: suffix, prefix: prefix, onPressEnter: onPressEnter, placeholder: placeholder, onBlur: onBlur, onFocus: onFocus, style: getFieldsStyleTheme(theme), className: className, onChange: handleChange, disabled: disabled, name: name, addonAfter: addonAfter, addonBefore: addonBefore })));
};