Skip to content

Commit add9bdf

Browse files
committed
fix: handle labels correctly
1 parent 009b14c commit add9bdf

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

src/render/BpmnPropertiesPanelRenderer.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,14 @@ export default class BpmnPropertiesPanelRenderer {
9494
if (selectedElements.length > 1) {
9595
this._selectedElement = selectedElements;
9696
} else if (selectedElements.length === 1) {
97-
this._selectedElement = selectedElements[0];
97+
let newSelectedElement = selectedElements[0];
98+
99+
// handle labels
100+
if (newSelectedElement.type === 'label') {
101+
newSelectedElement = newSelectedElement.labelTarget;
102+
}
103+
104+
this._selectedElement = newSelectedElement;
98105
} else {
99106
this._selectedElement = rootElement;
100107
}

test/spec/BpmnPropertiesPanelRenderer.spec.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,29 @@ describe('<BpmnPropertiesPanelRenderer>', function() {
387387
});
388388

389389

390+
it('should rerender on selection changed (label)', async function() {
391+
392+
// given
393+
const diagramXml = require('test/fixtures/simple.bpmn').default;
394+
395+
const { modeler } = await createModeler(diagramXml);
396+
397+
const spy = sinon.spy();
398+
399+
modeler.on('propertiesPanel.updated', spy);
400+
const label = modeler.get('elementRegistry').get('StartEvent_1').label;
401+
402+
// when
403+
await act(() => {
404+
modeler.get('selection').select(label);
405+
});
406+
407+
// then
408+
expect(spy).to.have.been.called;
409+
expect(domQuery('.bio-properties-panel-header-type', propertiesContainer).textContent).to.equal('Start Event');
410+
});
411+
412+
390413
it('should rerender on providers changed', async function() {
391414

392415
// given

0 commit comments

Comments
 (0)