mirror of
https://github.com/discourse/discourse.git
synced 2025-02-21 04:43:55 +08:00
![Joffrey JAFFEUX](/assets/img/avatar_default.png)
`<DSelect />` is a wrapper similar to our existing `<DButton />` over the html element `<select>`. The code is ported from form kit which is now directly using `<DSelect />`. Note this component has also been used in edit topic timer modal. This component is recommended for a small list of text items (no icons, no rich formatting...). Usage: ```gjs <DSelect class="my-select" @onChange={{this.handleChange}} as |select|> <select.Option @value="foo" class="my-favorite-option">Foo</select.Option> <select.Option @value="bar">Bar</select.Option> </DSelect> ``` This commit comes with a set of assertions: ```gjs import dselect from "discourse/tests/helpers/d-select-helper"; import { select } from "@ember/test-helpers"; assert .dselect(".my-select") .hasOption({ value: "bar", label: "Bar" }) .hasOption({ value: "foo", label: "Foo" }) .hasNoOption("baz"); await select(".my-select", "foo"); assert.dselect(".my-select").hasSelectedOption({value: "foo", label: "Foo"}); ```