1- import React from ' react' ;
2- import PropTypes from ' prop-types' ;
3- import { MenuItem } from ' @blueprintjs/core' ;
4- import { MultiSelect2 } from ' @blueprintjs/select' ;
5- import { highlightText } from ' ./utils/highlight-text.js' ;
1+ import React from " react" ;
2+ import PropTypes from " prop-types" ;
3+ import { MenuItem } from " @blueprintjs/core" ;
4+ import { MultiSelect2 } from " @blueprintjs/select" ;
5+ import { highlightText } from " ./utils/highlight-text" ;
66
77const filterItem = ( query , item ) => {
88 return item . text . toLowerCase ( ) . indexOf ( query . toLowerCase ( ) ) >= 0 ;
@@ -17,8 +17,13 @@ const propTypes = {
1717 popoverProps : PropTypes . object ,
1818} ;
1919
20- export const MultiSelect = ( { items, selected, inputId, popoverProps, ...propsRest } ) => {
21-
20+ const MultiSelect = ( {
21+ items,
22+ selected,
23+ inputId,
24+ popoverProps,
25+ ...propsRest
26+ } ) => {
2227 const [ selectedItems , setSelectedItems ] = React . useState (
2328 items . filter ( ( item ) => selected . includes ( item . text ) )
2429 ) ;
@@ -50,25 +55,31 @@ export const MultiSelect = ({ items, selected, inputId, popoverProps, ...propsRe
5055 [ selectedItems ]
5156 ) ;
5257
53- const handleItemRemove = React . useCallback ( ( removedItem ) => {
54- deselectItem ( removedItem ) ;
55- } , [ deselectItem ] ) ;
58+ const handleItemRemove = React . useCallback (
59+ ( removedItem ) => {
60+ deselectItem ( removedItem ) ;
61+ } ,
62+ [ deselectItem ]
63+ ) ;
5664
57- const handleItemSelect = React . useCallback ( ( newItem ) => {
58- if ( ! isSelectedItem ( newItem ) ) {
59- selectItem ( newItem ) ;
60- } else {
61- deselectItem ( newItem ) ;
62- }
63- } , [ isSelectedItem , selectItem , deselectItem ] ) ;
65+ const handleItemSelect = React . useCallback (
66+ ( newItem ) => {
67+ if ( ! isSelectedItem ( newItem ) ) {
68+ selectItem ( newItem ) ;
69+ } else {
70+ deselectItem ( newItem ) ;
71+ }
72+ } ,
73+ [ isSelectedItem , selectItem , deselectItem ]
74+ ) ;
6475
6576 const renderItem = React . useCallback (
6677 ( item , { handleClick, modifiers, query } ) => {
6778 if ( ! modifiers . matchesPredicate ) {
6879 return null ;
6980 }
7081 return React . createElement ( MenuItem , {
71- icon : isSelectedItem ( item ) ? ' tick' : ' blank' ,
82+ icon : isSelectedItem ( item ) ? " tick" : " blank" ,
7283 selected : modifiers . active ,
7384 active : modifiers . active ,
7485 disabled : modifiers . disabled ,
@@ -102,3 +113,4 @@ export const MultiSelect = ({ items, selected, inputId, popoverProps, ...propsRe
102113} ;
103114
104115MultiSelect . propTypes = propTypes ;
116+ export default MultiSelect ;
0 commit comments