test-jsonforms-react-spectrum-renderers
Version:
React Spectrum Renderer Set for JSONForms
29 lines • 1.35 kB
JavaScript
;
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