From d755b5eea6f6d74ec0d6cadaf51cd8c3b0a43718 Mon Sep 17 00:00:00 2001 From: Dmitry Yv Date: Mon, 8 Jul 2019 19:31:21 +0300 Subject: [PATCH] Expose onBodyClick to popover (#586) * Expose onBodyClick to popover * Fix lint error --- src/popover/src/Popover.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/popover/src/Popover.js b/src/popover/src/Popover.js index d60652b6c..456cd8b71 100644 --- a/src/popover/src/Popover.js +++ b/src/popover/src/Popover.js @@ -87,6 +87,11 @@ export default class Popover extends Component { * Function that will be called when the exit transition is complete. */ onCloseComplete: PropTypes.func.isRequired, + + /** + * Function that will be called when the body is clicked. + */ + onBodyClick: PropTypes.func.isRequired, /** * When true, bring focus inside of the Popover on open. @@ -107,7 +112,8 @@ export default class Popover extends Component { onOpen: () => {}, onClose: () => {}, onOpenComplete: () => {}, - onCloseComplete: () => {}, + onCloseComplete: () => {}, + onBodyClick: () => {}, bringFocusInside: false, shouldCloseOnExternalClick: true, trigger: 'click' @@ -196,6 +202,9 @@ export default class Popover extends Component { if (this.popoverNode && this.popoverNode.contains(e.target)) { return } + + // Notify body click + this.props.onBodyClick(e) if (this.props.shouldCloseOnExternalClick === false) { return