smart-react-components
Version:
React UI library, wide variety of editable ready to use Styled and React components.
50 lines (45 loc) • 1.49 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);
var useMultiple = ({ value, active, setActive, checked, setChecked, disabled, onChange }) => {
/**
* Checks if input is checked.
*/
const getChecked$ = () => {
if (setChecked)
return checked;
else if (setActive)
return typeof active.find(v => v == value) !== "undefined";
return false;
};
const [checked$, setChecked$] = React__default.useState(() => getChecked$());
React__default.useEffect(() => {
setChecked$(getChecked$());
}, [active, checked]);
/**
* Sets value if event is not prevented.
*
* @param e
*/
const change = (e) => {
if (disabled)
return;
if (onChange)
onChange(e);
if (!e.defaultPrevented) {
let c = (e.target).checked;
if (setChecked)
setChecked(c);
else if (setActive) {
let i = active.indexOf(value);
if (i == -1 && c)
setActive([...active, value]);
if (i > -1 && !c)
setActive(active.filter(v => v != value));
}
}
};
return { checked$, change };
};
exports.useMultiple = useMultiple;
;