From f31db3580815606ff24a948334fe0003e9958c4a Mon Sep 17 00:00:00 2001 From: Hannu Lyytikainen Date: Fri, 5 Jan 2018 09:52:30 +0200 Subject: [PATCH] Fix onBlur for externally controlled menus --- src/components/Menu/Menu.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/Menu/Menu.js b/src/components/Menu/Menu.js index 97abf114..e7ce0526 100644 --- a/src/components/Menu/Menu.js +++ b/src/components/Menu/Menu.js @@ -65,7 +65,13 @@ class Menu extends Component { // FocusEvent is fired faster than the link elements native click handler // gets its own event. Therefore, we need to check the origin of this FocusEvent. if (!this.menu.contains(event.relatedTarget)) { - this.setState({ isOpen: false }); + const { isOpen, onToggleActive } = this.props; + + if (isControlledMenu(isOpen, onToggleActive)) { + onToggleActive(false); + } else { + this.setState({ isOpen: false }); + } } }