@geezee/react-ui
Version:
Modern and minimalist React UI library.
37 lines (33 loc) • 1.36 kB
JavaScript
import { useRef, useMemo } from 'react';
export var useImperativeTextFieldHandlerGenerator = function useImperativeTextFieldHandlerGenerator() {
return function () {
var ref = useRef(null);
return useMemo(function () {
return {
ref: ref,
setValue: function setValue() {
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
/* istanbul ignore next */
if (!ref.current) return;
ref.current.value = value;
},
getValue: function getValue() {
var _ref$current;
return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.value;
},
focus: function focus() {
var _ref$current2;
return (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.focus();
},
blur: function blur() {
var _ref$current3;
return (_ref$current3 = ref.current) === null || _ref$current3 === void 0 ? void 0 : _ref$current3.blur();
}
};
}, []);
};
};
var useInputHandle = useImperativeTextFieldHandlerGenerator();
var useAutoCompleteHandle = useInputHandle;
var useTextareaHandle = useImperativeTextFieldHandlerGenerator();
export { useInputHandle, useTextareaHandle, useAutoCompleteHandle };