Skip to content

Commit 7891aa4

Browse files
committed
Remove hard-coded commas from selected value
1 parent 7261852 commit 7891aa4

3 files changed

Lines changed: 25 additions & 8 deletions

File tree

components/dash-core-components/src/components/css/dropdown.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@
7070
display: inline;
7171
}
7272

73+
.dash-dropdown-value-item:not(:first-child)::before {
74+
content: ', ';
75+
}
76+
7377
.dash-dropdown-content {
7478
background: var(--Dash-Fill-Inverse-Strong);
7579
width: fit-content;

components/dash-core-components/src/fragments/Dropdown.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,10 +156,12 @@ const Dropdown = (props: DropdownProps) => {
156156
option => option.value === val
157157
);
158158
return (
159-
<React.Fragment key={`${option?.value}-${i}`}>
159+
<span
160+
key={`${option?.value}-${i}`}
161+
className="dash-dropdown-value-item"
162+
>
160163
{option && <OptionLabel {...option} index={i} />}
161-
{i === sanitizedValues.length - 1 ? '' : ', '}
162-
</React.Fragment>
164+
</span>
163165
);
164166
});
165167
return labels;

components/dash-core-components/tests/integration/dropdown/test_a11y.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,31 +99,42 @@ def send_keys(key):
9999
assert num_elements == 100
100100

101101
send_keys(1) # Expecting to be typing into the searh bar
102+
sleep(0.1) # Give time for the search to filter options
102103
num_elements = len(dash_duo.find_elements(".dash-dropdown-option"))
103104
assert num_elements == 19
104105

105106
send_keys(Keys.ARROW_DOWN) # Expecting to be navigating through the options
106107
send_keys(Keys.SPACE) # Expecting to be selecting
107-
assert dash_duo.find_element(".dash-dropdown-value").text == "1"
108+
value_items = dash_duo.find_elements(".dash-dropdown-value-item")
109+
assert len(value_items) == 1
110+
assert value_items[0].text == "1"
108111

109112
send_keys(Keys.ARROW_DOWN) # Expecting to be navigating through the options
110113
send_keys(Keys.SPACE) # Expecting to be selecting
111-
assert dash_duo.find_element(".dash-dropdown-value").text == "1, 10"
114+
value_items = dash_duo.find_elements(".dash-dropdown-value-item")
115+
assert len(value_items) == 2
116+
assert [item.text for item in value_items] == ["1", "10"]
112117

113118
send_keys(Keys.SPACE) # Expecting to be de-selecting
114-
assert dash_duo.find_element(".dash-dropdown-value").text == "1"
119+
value_items = dash_duo.find_elements(".dash-dropdown-value-item")
120+
assert len(value_items) == 1
121+
assert value_items[0].text == "1"
115122

116123
send_keys(Keys.ARROW_UP)
117124
send_keys(Keys.ARROW_UP)
118125
send_keys(Keys.ARROW_UP) # Expecting to wrap over to the last item
119126
send_keys(Keys.SPACE)
120-
assert dash_duo.find_element(".dash-dropdown-value").text == "1, 91"
127+
value_items = dash_duo.find_elements(".dash-dropdown-value-item")
128+
assert len(value_items) == 2
129+
assert [item.text for item in value_items] == ["1", "91"]
121130

122131
send_keys(
123132
Keys.ESCAPE
124133
) # Expecting focus to remain on the dropdown after escaping out
125134
sleep(0.25)
126-
assert dash_duo.find_element(".dash-dropdown-value").text == "1, 91"
135+
value_items = dash_duo.find_elements(".dash-dropdown-value-item")
136+
assert len(value_items) == 2
137+
assert [item.text for item in value_items] == ["1", "91"]
127138

128139
assert dash_duo.get_logs() == []
129140

0 commit comments

Comments
 (0)