import React, { useMemo, } from "react"; export const FormItem = React.memo((props) => { const { title, value = "", readonly = true, horizontal = true, type, ...otherProps } = props; const valueMemo = useMemo(() => { if (readonly) { if (["", undefined, null].includes(value)) return "-"; return value; } if (type === "number") { return ; } return value; }, [readonly, value, type, otherProps]); return (
{title}
{valueMemo}
); }); const FormItemNumber = React.memo((props) => { const { value, onChange = () => {}, min } = props; const onInputChange = (e) => { onChange(e.target.value); }; const onInputBlur = (e) => { let res = parseFloat(e.target.value); if (isNaN(res)) res = "-"; onChange(res + ""); }; const onBtnClick = (add) => { let res = parseFloat(value); if (isNaN(res)) res = add; res = res + add; if (min !== undefined && res < min) res = min; onChange(res + ""); }; const btnDisabled = useMemo(() => [value <= min], [value, min]); return (
value > min && onBtnClick(-1)} > -
onBtnClick(1)}> +
); });