UNPKG

@schema-render/form-render-react

Version:

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

50 lines (49 loc) 1.53 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { useMemoizedFn, utils } from "@schema-render/core-react"; import { InputNumber as AntInputNumber } from "antd"; import React, { useMemo } from "react"; import Description from "../components/Description"; /** * 编辑与禁用态组件 */ const InputNumber = ({ 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((val)=>{ onChange(val ?? undefined, { triggerValidator: !validateOnBlur }); }); const handleBlur = useMemoizedFn(()=>{ onChange(value, { triggerValidator: true }); }); return /*#__PURE__*/ _jsx(AntInputNumber, { style: { width: '100%' }, placeholder: placeholder, ...restProps, status: validator.status, value: value, onChange: handleChange, onBlur: validateOnBlur ? handleBlur : undefined, disabled: disabled }); }; /** * 只读态组件 */ const ReadonlyInputNumber = ({ value })=>{ return /*#__PURE__*/ _jsx(Description, { children: value }); }; export default { component: InputNumber, readonlyComponent: ReadonlyInputNumber };