Skip to content

Commit 6f04e6c

Browse files
committed
fix(pf4): added multi clearable downshift select
1 parent 6bf57ca commit 6f04e6c

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

packages/pf4-component-mapper/demo/demo-schemas/select-schema.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,15 @@ const selectSchema = {
4040
isMulti: true,
4141
isSearchable: true
4242
},
43+
{
44+
component: componentTypes.SELECT,
45+
name: 'multi-clearable-searchable-select',
46+
label: 'Searchable clearable multi select',
47+
options,
48+
isMulti: true,
49+
isSearchable: true,
50+
isClearable: true
51+
},
4352
{
4453
component: componentTypes.SELECT,
4554
name: 'simple-select',

packages/pf4-component-mapper/src/common/select/clear-indicator.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,17 @@ import { TimesCircleIcon } from '@patternfly/react-icons';
55
import './clear-indicator.scss';
66

77
const ClearIndicator = ({ clearSelection }) => (
8-
<span
8+
<button
99
onClick={(event) => {
1010
clearSelection();
1111
event.stopPropagation();
1212
}}
13-
className="ddorg__pf4-component-mapper__select-clear-indicator pf-u-pr-md pf-u-pl-md"
13+
className="pf-c-button pf-m-plain pf-c-select__toggle-clear pf-u-p-0"
14+
type="button"
15+
aria-label="Clear all"
1416
>
1517
<TimesCircleIcon />
16-
</span>
18+
</button>
1719
);
1820

1921
ClearIndicator.propTypes = {

packages/pf4-component-mapper/src/common/select/select.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ const itemToString = (value, isMulti, showMore, handleShowMore, handleChange) =>
6969
const filterOptions = (options, filterValue = '') => options.filter(({ label }) => label.toLowerCase().includes(filterValue.toLowerCase()));
7070

7171
const getValue = (isMulti, option, value) => {
72-
if (!isMulti) {
72+
if (!isMulti || !option) {
7373
return option;
7474
}
7575

@@ -132,8 +132,8 @@ const InternalSelect = ({
132132
<div className="pf-c-select_toggle-wrapper ddorg__pf4-component-mapper__select-toggle-wrapper">
133133
<ValueContainer placeholder={placeholder} value={itemToString(selectedItem, isMulti, showMore, handleShowMore, handleChange)} />
134134
</div>
135+
{isClearable && parsedValue && <ClearIndicator clearSelection={clearSelection} />}
135136
<span className="pf-c-select__toggle-arrow">
136-
{isClearable && parsedValue && <ClearIndicator clearSelection={clearSelection} />}
137137
<CaretDownIcon />
138138
</span>
139139
</div>

0 commit comments

Comments
 (0)