From 99691fc75e728d8081d14e6d47475db1316447ca Mon Sep 17 00:00:00 2001 From: Sergey Vinogradov Date: Tue, 9 Nov 2021 16:15:53 +0300 Subject: [PATCH] fix: don't throw on requestContentUpdate before attaching (#2995) --- packages/select/src/vaadin-select.js | 4 ++++ packages/select/test/renderer.test.js | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/packages/select/src/vaadin-select.js b/packages/select/src/vaadin-select.js index 79aecc535a..4c30a377ac 100644 --- a/packages/select/src/vaadin-select.js +++ b/packages/select/src/vaadin-select.js @@ -344,6 +344,10 @@ class Select extends DelegateFocusMixin(FieldMixin(SlotMixin(ElementMixin(Themab * It is not guaranteed that the update happens immediately (synchronously) after it is requested. */ requestContentUpdate() { + if (!this._overlayElement) { + return; + } + this._overlayElement.requestContentUpdate(); // Ensure menu element is set diff --git a/packages/select/test/renderer.test.js b/packages/select/test/renderer.test.js index e75b6c02ae..36f822872e 100644 --- a/packages/select/test/renderer.test.js +++ b/packages/select/test/renderer.test.js @@ -50,6 +50,11 @@ describe('renderer', () => { }; }); + it('should not throw when requesting content update before attaching to the DOM', () => { + const select = document.createElement('vaadin-select'); + expect(() => select.requestContentUpdate()).not.to.throw(Error); + }); + it('should run renderers when requesting content update', () => { select.renderer = sinon.spy(); select.opened = true;