UNPKG

test-jsonforms-react-spectrum-renderers

Version:

React Spectrum Renderer Set for JSONForms

29 lines 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var debounce_1 = tslib_1.__importDefault(require("lodash/debounce")); var react_1 = require("react"); exports.useDebouncedChange = function (handleChange, defaultValue, data, path) { var timeout = 300; var _a = react_1.useState(data !== null && data !== void 0 ? data : defaultValue), input = _a[0], setInput = _a[1]; var debouncedUpdate = react_1.useCallback(debounce_1.default(function (newValue) { handleChange(path, newValue); //console.log('debouncedUpdate'); }, timeout), [handleChange, path, timeout]); react_1.useEffect(function () { setInput(data !== null && data !== void 0 ? data : defaultValue); debouncedUpdate(input); //console.log('useEffect debouncer'); }, []); var onChange = react_1.useCallback(function (value) { setInput(value !== null && value !== void 0 ? value : defaultValue); debouncedUpdate(value); //console.log('onChange'); }, [debouncedUpdate]); var onClear = react_1.useCallback(function () { setInput(defaultValue); handleChange(path, undefined); }, [defaultValue, handleChange, path]); return [input, onChange, onClear]; }; //# sourceMappingURL=debounce.js.map