From 0e15704440585be21ecd93bfd2e4284c027e097d Mon Sep 17 00:00:00 2001 From: Ugur Saglam <106508695+ugur-vaadin@users.noreply.github.com> Date: Thu, 5 Dec 2024 12:06:52 +0200 Subject: [PATCH] fix: clear value when removing the last input (#8270) Co-authored-by: Sergey Vinogradov --- .../custom-field/src/vaadin-custom-field-mixin.js | 3 +++ packages/custom-field/test/custom-field.common.js | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/packages/custom-field/src/vaadin-custom-field-mixin.js b/packages/custom-field/src/vaadin-custom-field-mixin.js index 0e59b6ac172..e685ce85dcd 100644 --- a/packages/custom-field/src/vaadin-custom-field-mixin.js +++ b/packages/custom-field/src/vaadin-custom-field-mixin.js @@ -272,6 +272,9 @@ export const CustomFieldMixin = (superClass) => /** @private */ __inputsChanged(inputs, oldInputs) { if (inputs.length === 0) { + if (oldInputs && oldInputs.length > 0) { + this.__setValue(); + } return; } diff --git a/packages/custom-field/test/custom-field.common.js b/packages/custom-field/test/custom-field.common.js index 7f019e212d5..b266a223d45 100644 --- a/packages/custom-field/test/custom-field.common.js +++ b/packages/custom-field/test/custom-field.common.js @@ -88,6 +88,19 @@ describe('custom field', () => { expect(el.value).to.equal(''); }); }); + + it('should update value when removing inputs', async () => { + customField.value = '1\t1'; + await nextUpdate(customField); + + customField.removeChild(customField.inputs[0]); + await nextUpdate(customField); + expect(customField.value).to.equal('1'); + + customField.removeChild(customField.inputs[0]); + await nextUpdate(customField); + expect(customField.value).to.equal(''); + }); }); describe('value set with attribute', () => {