From 1fe1aac874a04fc41afab867ab3560651fe1b095 Mon Sep 17 00:00:00 2001 From: Maria Tereza Date: Tue, 15 Feb 2022 01:31:29 -0300 Subject: [PATCH] fix(TransitionablePortal): fix onClose call --- .../TransitionablePortal/TransitionablePortal.js | 10 +++++++++- .../TransitionablePortal/TransitionablePortal-test.js | 11 +++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/addons/TransitionablePortal/TransitionablePortal.js b/src/addons/TransitionablePortal/TransitionablePortal.js index 9ab8d8b60d..cdb44c48ec 100644 --- a/src/addons/TransitionablePortal/TransitionablePortal.js +++ b/src/addons/TransitionablePortal/TransitionablePortal.js @@ -58,9 +58,17 @@ export default class TransitionablePortal extends Component { handleTransitionHide = (nothing, data) => { debug('handleTransitionHide()') const { portalOpen } = this.state + const { open } = this.props this.setState({ transitionVisible: false }) - _.invoke(this.props, 'onClose', null, { ...data, portalOpen: false, transitionVisible: false }) + + if (_.isUndefined(open) || open) { + _.invoke(this.props, 'onClose', null, { + ...data, + portalOpen: false, + transitionVisible: false, + }) + } _.invoke(this.props, 'onHide', null, { ...data, portalOpen, transitionVisible: false }) } diff --git a/test/specs/addons/TransitionablePortal/TransitionablePortal-test.js b/test/specs/addons/TransitionablePortal/TransitionablePortal-test.js index 79d9f23a63..56ef7d7bc2 100644 --- a/test/specs/addons/TransitionablePortal/TransitionablePortal-test.js +++ b/test/specs/addons/TransitionablePortal/TransitionablePortal-test.js @@ -83,6 +83,17 @@ describe('TransitionablePortal', () => { }, done) }) + it('is not called if portal already closed ', () => { + const onClose = sandbox.spy() + + wrapperMount( + , + ) + + wrapper.setProps({ open: false }) + onClose.should.not.have.been.called() + }) + it('changes `portalOpen` to false', () => { wrapperMount(