fix multiselect trigger onOpen/onClose after first render

This commit is contained in:
NikolaBorislavovHristov 2019-12-02 10:37:53 +02:00
parent 2ec1448841
commit eed4a63243

View file

@ -41,22 +41,27 @@ const Multiselect = ({ className, direction, title, options, selected, disabled,
closeMenu(); closeMenu();
} }
}, [dataset, onSelect]); }, [dataset, onSelect]);
const mountedRef = React.useRef(false);
React.useLayoutEffect(() => { React.useLayoutEffect(() => {
if (menuOpen) { if (mountedRef.current) {
if (typeof onOpen === 'function') { if (menuOpen) {
onOpen({ if (typeof onOpen === 'function') {
type: 'open', onOpen({
dataset: dataset type: 'open',
}); dataset: dataset
} });
} else { }
if (typeof onClose === 'function') { } else {
onClose({ if (typeof onClose === 'function') {
type: 'close', onClose({
dataset: dataset type: 'close',
}); dataset: dataset
});
}
} }
} }
mountedRef.current = true;
}, [menuOpen]); }, [menuOpen]);
return ( return (
<Popup <Popup