UNPKG

@schema-render/form-render-react

Version:

Out-of-the-box form rendering library based on Core and Antd.

50 lines (49 loc) 1.54 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { useMemoizedFn, utils } from "@schema-render/core-react"; import { Input } from "antd"; import React, { useMemo } from "react"; import Description from "../components/Description"; /** * 编辑与禁用态组件 */ const InputText = ({ schema, disabled, value, onChange, validator, locale })=>{ const { validateOnBlur, ...restProps } = schema.renderOptions || {}; const placeholder = useMemo(()=>utils.templateCompiled(locale.FormRender.placeholderInput, { title: schema.title }), [ schema.title, locale.FormRender.placeholderInput ]); const handleChange = useMemoizedFn((e)=>{ const val = e.target.value; /* istanbul ignore else */ if (val !== value) { onChange(val, { triggerValidator: !validateOnBlur }); } }); const handleBlur = useMemoizedFn(()=>{ onChange(value, { triggerValidator: true }); }); return /*#__PURE__*/ _jsx(Input, { placeholder: placeholder, ...restProps, status: validator.status, value: value ?? '', onChange: handleChange, onBlur: validateOnBlur ? handleBlur : undefined, disabled: disabled }); }; /** * 只读态组件 */ const ReadonlyInputText = ({ value })=>{ return /*#__PURE__*/ _jsx(Description, { children: value }); }; export default { component: InputText, readonlyComponent: ReadonlyInputText };