Menu needs to wait mounting to calculate dimensions reliably

This commit is contained in:
Vesa Luusua 2019-05-22 12:54:15 +03:00
parent e01dfa0258
commit 740e2f24bc

View file

@ -38,7 +38,7 @@ class Menu extends Component {
constructor(props) {
super(props);
this.state = { isOpen: false };
this.state = { isOpen: false, ready: false };
const { isOpen, onToggleActive } = props;
const isIndependentMenu = isOpen === null && onToggleActive === null;
@ -60,6 +60,10 @@ class Menu extends Component {
this.menu = null;
this.menuContent = null;
}
componentDidMount() {
// Menu needs to know about DOM before it can calculate it's size proberly.
this.setState({ ready: true });
}
onBlur(event) {
// FocusEvent is fired faster than the link elements native click handler
@ -168,7 +172,7 @@ class Menu extends Component {
const { className, rootClassName } = this.props;
const rootClass = rootClassName || css.root;
const classes = classNames(rootClass, className);
const menuChildren = this.prepareChildren();
const menuChildren = this.state.ready ? this.prepareChildren() : null;
return (
<div