@wordpress/compose
Version:
WordPress higher-order components (HOCs).
33 lines (30 loc) • 1.05 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useDebouncedInput;
var _element = require("@wordpress/element");
var _useDebounce = _interopRequireDefault(require("../use-debounce"));
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* Helper hook for input fields that need to debounce the value before using it.
*
* @param defaultValue The default value to use.
* @return The input value, the setter and the debounced input value.
*/
function useDebouncedInput(defaultValue = '') {
const [input, setInput] = (0, _element.useState)(defaultValue);
const [debouncedInput, setDebouncedState] = (0, _element.useState)(defaultValue);
const setDebouncedInput = (0, _useDebounce.default)(setDebouncedState, 250);
(0, _element.useEffect)(() => {
setDebouncedInput(input);
}, [input, setDebouncedInput]);
return [input, setInput, debouncedInput];
}
//# sourceMappingURL=index.js.map