From 158f36a74ea22246873474528aeba7d45952e283 Mon Sep 17 00:00:00 2001 From: Tomi Virkki Date: Thu, 3 Feb 2022 11:21:56 +0200 Subject: [PATCH] fix: only run the crud grid header renderer once (#3386) --- packages/crud/src/vaadin-crud-grid.js | 4 ++++ packages/crud/test/crud-grid.test.js | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/packages/crud/src/vaadin-crud-grid.js b/packages/crud/src/vaadin-crud-grid.js index c89649d6a1..d57f05d777 100644 --- a/packages/crud/src/vaadin-crud-grid.js +++ b/packages/crud/src/vaadin-crud-grid.js @@ -167,6 +167,10 @@ class CrudGrid extends IncludedMixin(Grid) { if (!this.noHead && path) { // Create a header renderer for the column (or column group) col.headerRenderer = (root) => { + if (root.firstElementChild) { + return; + } + const label = this._generateHeader(path); if (col.__sortColumnGroup || (this.noFilter && !this.noSort)) { diff --git a/packages/crud/test/crud-grid.test.js b/packages/crud/test/crud-grid.test.js index 33ceaf5151..557b0e1595 100644 --- a/packages/crud/test/crud-grid.test.js +++ b/packages/crud/test/crud-grid.test.js @@ -194,6 +194,13 @@ describe('crud grid', () => { it('should capitalize correctly', () => { expect(grid.__capitalize('aa.bb cc-dd FF')).to.be.equal('Aa bb cc dd ff'); }); + + it('should only render one control in a cell', async () => { + grid.requestContentUpdate(); + await nextRender(grid); + expect(getHeaderCellContent(grid, 1, 0).childElementCount).to.equal(1); + expect(getHeaderCellContent(grid, 2, 0).childElementCount).to.equal(1); + }); }); }); });