UNPKG

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
'use strict'; 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;