diff --git a/src/render/BpmnPropertiesPanel.js b/src/render/BpmnPropertiesPanel.js index f7bf0068c..ca667f527 100644 --- a/src/render/BpmnPropertiesPanel.js +++ b/src/render/BpmnPropertiesPanel.js @@ -135,20 +135,20 @@ export default function BpmnPropertiesPanel(props) { }; }, [ selectedElement ]); - // (2c) root element changed + // (2c) import done useEffect(() => { - const onRootAdded = (e) => { - const element = e.element; + const onImportDone = () => { + const rootElement = canvas.getRootElement(); - _update(element); + _update(rootElement); }; - eventBus.on('root.added', onRootAdded); + eventBus.on('import.done', onImportDone); return () => { - eventBus.off('root.added', onRootAdded); + eventBus.off('import.done', onImportDone); }; - }, [ selectedElement ]); + }, []); // (2d) provided entries changed useEffect(() => { diff --git a/test/spec/BpmnPropertiesPanel.spec.js b/test/spec/BpmnPropertiesPanel.spec.js index 310591ed8..4a6e20b97 100644 --- a/test/spec/BpmnPropertiesPanel.spec.js +++ b/test/spec/BpmnPropertiesPanel.spec.js @@ -225,7 +225,7 @@ describe('', function() { }); - it('should update on root element changed', function() { + it('should update on import done', function() { // given const updateSpy = sinon.spy(); @@ -237,7 +237,7 @@ describe('', function() { createBpmnPropertiesPanel({ container, eventBus }); // when - eventBus.fire('root.added', { element: noopElement }); + eventBus.fire('import.done'); // then expect(updateSpy).to.have.been.calledWith({ @@ -450,9 +450,16 @@ function createBpmnPropertiesPanel(options = {}) { } = options; let { + canvas, elementRegistry } = options; + if (!canvas) { + canvas = { + getRootElement: () => noopElement + }; + } + if (!elementRegistry) { elementRegistry = new elementRegistryMock(); elementRegistry.setElements([ element ]); @@ -460,6 +467,7 @@ function createBpmnPropertiesPanel(options = {}) { const injector = new injectorMock({ ...options, + canvas, elementRegistry }); diff --git a/test/spec/mocks/index.js b/test/spec/mocks/index.js index dca68fc43..842607f7d 100644 --- a/test/spec/mocks/index.js +++ b/test/spec/mocks/index.js @@ -60,7 +60,7 @@ export class Injector { } if (type === 'canvas') { - return new Canvas(); + return this._options.canvas || new Canvas(); } } }