forked from google/mesop
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Allow multiple selections on select box (google#481)
* Allow multiple selections on select box * Fix typing
- Loading branch information
1 parent
8135587
commit 153f222
Showing
8 changed files
with
93 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
from . import select_app as select_app | ||
from . import select_app_multiple as select_app_multiple |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
import mesop as me | ||
|
||
|
||
@me.stateclass | ||
class State: | ||
selected_values: list[str] | ||
|
||
|
||
def on_selection_change(e: me.SelectSelectionChangeEvent): | ||
s = me.state(State) | ||
s.selected_values = e.values | ||
|
||
|
||
@me.page(path="/components/select/e2e/select_app_multiple") | ||
def app(): | ||
me.text(text="Select") | ||
me.select( | ||
label="Select", | ||
options=[ | ||
me.SelectOption(label="label 1", value="value1"), | ||
me.SelectOption(label="label 2", value="value2"), | ||
me.SelectOption(label="label 3", value="value3"), | ||
], | ||
on_selection_change=on_selection_change, | ||
multiple=True, | ||
style=me.Style(width=500), | ||
) | ||
s = me.state(State) | ||
me.text(text="Selected values: " + ", ".join(s.selected_values)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,25 @@ | ||
import {test, expect} from '@playwright/test'; | ||
|
||
test('test', async ({page}) => { | ||
test('single selection', async ({page}) => { | ||
await page.goto('/components/select/e2e/select_app'); | ||
await page.getByRole('combobox').click(); | ||
await page.getByRole('option', {name: 'label 2'}).click(); | ||
await expect(page.getByText('Selected value: value2')).toBeAttached(); | ||
|
||
await page.getByRole('combobox').click(); | ||
await page.getByRole('option', {name: 'label 3'}).click(); | ||
await expect(page.getByText('Selected value: value3')).toBeAttached(); | ||
}); | ||
|
||
test('multiple selection', async ({page}) => { | ||
await page.goto('/components/select/e2e/select_app_multiple'); | ||
await page.getByLabel('Select').click(); | ||
|
||
await page.getByRole('option', {name: 'label 2'}).click(); | ||
await expect(page.getByText('Selected values: value2')).toBeAttached(); | ||
|
||
expect( | ||
await page.getByText('Selected value: value2').textContent(), | ||
).toContain('Selected value: value2'); | ||
await page.getByRole('option', {name: 'label 1'}).click(); | ||
await expect( | ||
page.getByText('Selected values: value1, value2'), | ||
).toBeAttached(); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters