From be0155492204ea2d1e311678220893ee223fafa4 Mon Sep 17 00:00:00 2001 From: Seb Julliand Date: Sat, 21 Feb 2026 17:50:23 +0100 Subject: [PATCH 1/3] Fixed single-select value not updated after onOptionClick event Signed-off-by: Seb Julliand --- src/vscode-single-select/vscode-single-select.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/vscode-single-select/vscode-single-select.ts b/src/vscode-single-select/vscode-single-select.ts index 27dcf9c7..cc6dd481 100644 --- a/src/vscode-single-select/vscode-single-select.ts +++ b/src/vscode-single-select/vscode-single-select.ts @@ -1,10 +1,10 @@ -import {html, LitElement, TemplateResult} from 'lit'; -import {property, query} from 'lit/decorators.js'; -import {ifDefined} from 'lit/directives/if-defined.js'; -import {customElement} from '../includes/VscElement.js'; -import {chevronDownIcon} from '../includes/vscode-select/template-elements.js'; -import {VscodeSelectBase} from '../includes/vscode-select/vscode-select-base.js'; -import {AssociatedFormControl} from '../includes/AssociatedFormControl.js'; +import { html, LitElement, TemplateResult } from 'lit'; +import { property, query } from 'lit/decorators.js'; +import { ifDefined } from 'lit/directives/if-defined.js'; +import { AssociatedFormControl } from '../includes/AssociatedFormControl.js'; +import { customElement } from '../includes/VscElement.js'; +import { chevronDownIcon } from '../includes/vscode-select/template-elements.js'; +import { VscodeSelectBase } from '../includes/vscode-select/vscode-select-base.js'; import styles from './vscode-single-select.styles.js'; export type VscSingleSelectCreateOptionEvent = CustomEvent<{value: string}>; @@ -314,7 +314,7 @@ export class VscodeSingleSelect this._opts.selectedIndex = Number((optEl as HTMLElement).dataset.index); this.open = false; - this._internals.setFormValue(this._value); + this._internals.setFormValue(this._opts.value as string); this._manageRequired(); this._dispatchChangeEvent(); } From 8ed11aac9f34261a2da5f2dbce85de32ee7dd5b6 Mon Sep 17 00:00:00 2001 From: bendera Date: Sat, 21 Feb 2026 23:16:44 +0100 Subject: [PATCH 2/3] Prettier fix --- src/vscode-single-select/vscode-single-select.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/vscode-single-select/vscode-single-select.ts b/src/vscode-single-select/vscode-single-select.ts index cc6dd481..9fecc8d9 100644 --- a/src/vscode-single-select/vscode-single-select.ts +++ b/src/vscode-single-select/vscode-single-select.ts @@ -1,10 +1,10 @@ -import { html, LitElement, TemplateResult } from 'lit'; -import { property, query } from 'lit/decorators.js'; -import { ifDefined } from 'lit/directives/if-defined.js'; -import { AssociatedFormControl } from '../includes/AssociatedFormControl.js'; -import { customElement } from '../includes/VscElement.js'; -import { chevronDownIcon } from '../includes/vscode-select/template-elements.js'; -import { VscodeSelectBase } from '../includes/vscode-select/vscode-select-base.js'; +import {html, LitElement, TemplateResult} from 'lit'; +import {property, query} from 'lit/decorators.js'; +import {ifDefined} from 'lit/directives/if-defined.js'; +import {AssociatedFormControl} from '../includes/AssociatedFormControl.js'; +import {customElement} from '../includes/VscElement.js'; +import {chevronDownIcon} from '../includes/vscode-select/template-elements.js'; +import {VscodeSelectBase} from '../includes/vscode-select/vscode-select-base.js'; import styles from './vscode-single-select.styles.js'; export type VscSingleSelectCreateOptionEvent = CustomEvent<{value: string}>; From dc096fe2ce3380858c150bd1221ba6fae2c268e7 Mon Sep 17 00:00:00 2001 From: bendera Date: Sun, 22 Feb 2026 00:14:30 +0100 Subject: [PATCH 3/3] Add test for PR #604 --- .../vscode-single-select.test.ts | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/vscode-single-select/vscode-single-select.test.ts b/src/vscode-single-select/vscode-single-select.test.ts index 3c116089..f61c2643 100644 --- a/src/vscode-single-select/vscode-single-select.test.ts +++ b/src/vscode-single-select/vscode-single-select.test.ts @@ -1,7 +1,12 @@ /* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */ /* eslint-disable @typescript-eslint/no-unused-expressions */ import {sendKeys} from '@web/test-runner-commands'; -import {clickOnElement, moveMouseOnElement} from '../includes/test-helpers.js'; +import { + $, + $$, + clickOnElement, + moveMouseOnElement, +} from '../includes/test-helpers.js'; import type {VscodeOption} from '../vscode-option/vscode-option.js'; import {VscodeSingleSelect} from './index.js'; import {aTimeout, expect, fixture, html} from '@open-wc/testing'; @@ -195,6 +200,28 @@ describe('vscode-single-select', () => { expect(spy).to.be.called; }); + it('changes form value', async () => { + const form = await fixture(html` +
+ + Lorem + Ipsum + Dolor + +
+ `); + + const sl = $('vscode-single-select'); + await clickOnElement(form); + + const options = $$(sl.shadowRoot!, 'li[role="option"]'); + options[1].click(); + + const fd = new FormData(form); + + expect(fd.get('test')).to.eq('Ipsum'); + }); + it('no item selected', async () => { const el = (await fixture(html`