smart-react-components
Version:
React UI library, wide variety of editable ready to use Styled and React components.
60 lines (55 loc) • 1.55 kB
JavaScript
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var React = require('react');
var React__default = _interopDefault(React);
function useInputMethods ({ disabled, value, setValue, onChange, onFocus, onBlur }) {
const [isFocused, setIsFocused] = React__default.useState(false);
/**
* Calls onChange method.
* Sets value if event is not prevented.
*
* @param e
*/
const change = (e) => {
if (!disabled) {
if (onChange)
onChange(e);
if (!e.defaultPrevented) {
let el = e.target;
if (el.type !== "file")
setValue(el.value);
}
}
};
/**
* Calls onFocus method.
* Sets focus status.
*
* @param e
*/
const focus = (e) => {
if (!disabled) {
if (onFocus)
onFocus(e);
if (!e.defaultPrevented)
setIsFocused(true);
}
};
/**
* Calls onBlur method.
* Sets focus status.
*
* @param e
*/
const blur = (e) => {
if (onBlur)
onBlur(e);
if (!e.defaultPrevented)
setIsFocused(false);
};
return {
props: setValue ? { value, onChange: change, onFocus: focus, onBlur: blur } : { onFocus: focus, onBlur: blur },
isFocused
};
}
exports.useInputMethods = useInputMethods;
;