Skip to content

Commit f6a261b

Browse files
committed
close on select functionality added
1 parent fc5f698 commit f6a261b

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

src/MultiSelect.jsx

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ MultiSelect.defaultProps = {
3232
}
3333
],
3434
customValue: false,
35-
chipAlternateText: 'Item Selected'
35+
chipAlternateText: 'Item Selected',
36+
closeOnSelect: true
3637
}
3738

3839
function MultiSelect({
@@ -58,7 +59,8 @@ function MultiSelect({
5859
customValue,
5960
onMenuOpen,
6061
onMenuClose,
61-
chipAlternateText
62+
chipAlternateText,
63+
closeOnSelect
6264
}) {
6365
const [value, setValue] = useState([])
6466
const [options, setOptions] = useState(userOptions || [])
@@ -148,6 +150,8 @@ function MultiSelect({
148150
}
149151

150152
setValue(preDefinedValue)
153+
// close on option select
154+
closeOnSelect && setMenuOpen(false)
151155
}, [defaultValue])
152156

153157
const setNewValue = (val) => {
@@ -172,7 +176,6 @@ function MultiSelect({
172176
}
173177
return { label, value }
174178
}
175-
176179
const addValue = (newValObj) => {
177180
let tmp = [...value]
178181
if (singleSelect) {
@@ -328,7 +331,7 @@ function MultiSelect({
328331
}
329332
}
330333

331-
const notClickableItem = (target) => {
334+
const nonClickableItem = (target) => {
332335
if (
333336
target.hasAttribute('clickable') ||
334337
target.parentNode.hasAttribute('clickable') ||
@@ -357,7 +360,7 @@ function MultiSelect({
357360
}
358361

359362
const openMenu = ({ target }) => {
360-
if (notClickableItem(target)) {
363+
if (nonClickableItem(target)) {
361364
if (checkIsDropdownHandle(target)) {
362365
if (!menuOpen) {
363366
setMenuOpen(true)
@@ -420,22 +423,14 @@ function MultiSelect({
420423
/>
421424
))}
422425
{!singleSelect && disableChip && value.length > 0 && (
423-
<span
424-
className='msl-single-value'
425-
data-msl
426-
style={{ width: calculatedWidth }}
427-
>
426+
<span className='msl-single-value' data-msl>
428427
{value.length === 1
429428
? showLabel(value[0])
430429
: `${value.length} ${chipAlternateText}`}
431430
</span>
432431
)}
433432
{singleSelect && value.length === 1 && (
434-
<span
435-
className='msl-single-value'
436-
data-msl
437-
style={{ width: calculatedWidth }}
438-
>
433+
<span className='msl-single-value' data-msl>
439434
{showLabel(value[0])}
440435
</span>
441436
)}

0 commit comments

Comments
 (0)