From bceb78f21af58634fc4c11c958b440543e07e092 Mon Sep 17 00:00:00 2001 From: Samuel Vaillant Date: Thu, 27 Jun 2019 11:34:34 +0200 Subject: [PATCH] fix(panel): return value from dispose (#3895) --- src/widgets/panel/__tests__/panel-test.js | 15 +++++++++++++++ src/widgets/panel/panel.js | 4 +++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/widgets/panel/__tests__/panel-test.js b/src/widgets/panel/__tests__/panel-test.js index 7ed0ef1fbd..f34b539ea9 100644 --- a/src/widgets/panel/__tests__/panel-test.js +++ b/src/widgets/panel/__tests__/panel-test.js @@ -182,4 +182,19 @@ describe('Lifecycle', () => { expect(widget.render).toHaveBeenCalledTimes(1); expect(widget.dispose).toHaveBeenCalledTimes(1); }); + + test('returns the `state` from the widget dispose function', () => { + const widget = { + dispose: jest.fn(() => 'nextState'), + }; + const widgetFactory = () => widget; + + const widgetWithPanel = panel()(widgetFactory)({ + container: document.createElement('div'), + }); + + const nextState = widgetWithPanel.dispose({}); + + expect(nextState).toBe('nextState'); + }); }); diff --git a/src/widgets/panel/panel.js b/src/widgets/panel/panel.js index 8145a34b83..83849a6e4d 100644 --- a/src/widgets/panel/panel.js +++ b/src/widgets/panel/panel.js @@ -179,8 +179,10 @@ export default function panel({ unmountComponentAtNode(getContainerNode(container)); if (typeof widget.dispose === 'function') { - widget.dispose.call(this, ...args); + return widget.dispose.call(this, ...args); } + + return undefined; }, render(...args) { const [options] = args;