diff --git a/packages/chakra-ui-core/src/CMenu/CMenu.js b/packages/chakra-ui-core/src/CMenu/CMenu.js
index ca6f8a42..abbaa196 100644
--- a/packages/chakra-ui-core/src/CMenu/CMenu.js
+++ b/packages/chakra-ui-core/src/CMenu/CMenu.js
@@ -384,7 +384,7 @@ const CMenuList = {
}
},
render (h) {
- const { isOpen, buttonNode, menuId, buttonId, placement, closeMenu } = this.context
+ const { isOpen, buttonNode, menuId, buttonId, placement, closeMenu, closeOnBlur } = this.context
return h(CPopper, {
props: {
usePortal: false,
@@ -399,7 +399,7 @@ const CMenuList = {
}
}
],
- closeOnClickAway: true,
+ closeOnClickAway: closeOnBlur,
hasArrow: false
},
attrs: {
diff --git a/packages/chakra-ui-core/src/CMenu/CMenu.stories.js b/packages/chakra-ui-core/src/CMenu/CMenu.stories.js
index 1cdb5b99..77012e76 100644
--- a/packages/chakra-ui-core/src/CMenu/CMenu.stories.js
+++ b/packages/chakra-ui-core/src/CMenu/CMenu.stories.js
@@ -1,46 +1,29 @@
import { storiesOf } from '@storybook/vue'
-import { CMenu, CMenuGroup, CMenuButton, CMenuList, CMenuOptionGroup, CImage, CMenuItemOption, CMenuItem, CMenuDivider, CIcon, defaultTheme } from '..'
+import { CMenu, CFade, CMenuGroup, CMenuButton, CMenuList, CMenuOptionGroup, CImage, CMenuItemOption, CMenuItem, CMenuDivider, CIcon, defaultTheme } from '..'
console.log({ defaultTheme })
storiesOf('UI | Menu', module)
- .add('Default Menu', () => ({
- components: { CMenu, CMenuGroup, CMenuButton, CMenuList, CMenuItem, CMenuDivider, CIcon },
- template: `
-
-
- Actions
-
-
- Download
- Create a Copy
- Mark as Draft
- Delete
-
- Attend a Workshop
-
-
-
- `
- }))
.add('With internal state', () => ({
- components: { CMenu, CMenuGroup, CMenuButton, CMenuList, CMenuItem, CMenuDivider },
+ components: { CFade, CMenu, CMenuGroup, CMenuButton, CMenuList, CMenuItem, CMenuDivider },
template: `
-
+
{{ isOpen ? 'Close' : 'Open' }}
-
-
- My Account
- Payments
-
-
-
- Docs
- FAQ
-
-
+
+
+
+ My Account
+ Payments
+
+
+
+ Docs
+ FAQ
+
+
+
`
}))
@@ -123,3 +106,22 @@ storiesOf('UI | Menu', module)
`
}))
+ .add('No close on blur', () => ({
+ components: { CMenu, CMenuGroup, CMenuButton, CMenuList, CMenuItem, CMenuDivider, CIcon },
+ template: `
+
+
+ Actions
+
+
+ Download
+ Create a Copy
+ Mark as Draft
+ Delete
+
+ Attend a Workshop
+
+
+
+ `
+ }))
diff --git a/packages/chakra-ui-core/src/CPopper/CPopper.js b/packages/chakra-ui-core/src/CPopper/CPopper.js
index 6ed1ca26..d495e05b 100644
--- a/packages/chakra-ui-core/src/CPopper/CPopper.js
+++ b/packages/chakra-ui-core/src/CPopper/CPopper.js
@@ -259,7 +259,7 @@ const CPopper = {
*/
wrapClose (e) {
if (this.popper && !(this.anchor.contains(e.target))) {
- this.handleClose()
+ this.closeOnClickAway && this.handleClose()
}
},