UNPKG

@antv/s2-react-components

Version:

React components for S2

32 lines 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FrozenInputNumber = void 0; const tslib_1 = require("tslib"); const s2_1 = require("@antv/s2"); const antd_1 = require("antd"); const lodash_1 = require("lodash"); const react_1 = tslib_1.__importDefault(require("react")); const PRE_CLASS = `${s2_1.S2_PREFIX_CLS}-frozen-input-number`; exports.FrozenInputNumber = react_1.default.memo((props) => { const { disabled, value, onChange } = props, attrs = tslib_1.__rest(props, ["disabled", "value", "onChange"]); const [inputValue, setInputValue] = react_1.default.useState(value); const onDebounceChange = react_1.default.useMemo(() => { return (0, lodash_1.debounce)((nextValue) => { onChange === null || onChange === void 0 ? void 0 : onChange(nextValue); }, 500); }, []); react_1.default.useEffect(() => { if (value !== inputValue) { setInputValue(value); } return () => { onDebounceChange.cancel(); }; }, [value]); return (react_1.default.createElement(antd_1.InputNumber, Object.assign({ className: PRE_CLASS, size: "small", min: 0, max: 20, step: 1, precision: 0, disabled: disabled }, attrs, { value: inputValue, onChange: (nextValue) => { setInputValue(nextValue); onDebounceChange(nextValue); } }))); }); exports.FrozenInputNumber.displayName = 'FrozenInputNumber'; //# sourceMappingURL=index.js.map