File tree Expand file tree Collapse file tree 8 files changed +17
-28
lines changed Expand file tree Collapse file tree 8 files changed +17
-28
lines changed Original file line number Diff line number Diff line change @@ -62,7 +62,7 @@ export default App;
6262| --------------------- | --------------------------------- | ------------------ | ------- |
6363| ` labelledBy ` | value for ` aria-labelledby ` | ` string ` | |
6464| ` options ` | options for dropdown | ` [{label, value}] ` | |
65- | ` selected ` | pre-selected rows | ` [value] ` | ` [] ` |
65+ | ` selected ` | pre-selected rows | ` [{label, value}] ` | ` [] ` |
6666| ` hasSelectAll ` | toggle 'Select All' option | ` boolean ` | ` true ` |
6767| ` isLoading ` | show spinner on select | ` boolean ` | ` false ` |
6868| ` shouldToggleOnHover ` | toggle dropdown on hover option | ` boolean ` | ` false ` |
Original file line number Diff line number Diff line change 11{
22 "name" : " react-multi-select-component" ,
3- "version" : " 1.0.1 " ,
3+ "version" : " 1.2.0 " ,
44 "description" : " Simple multiple selection dropdown component with checkboxes, search and select-al`" ,
55 "author" : " harshzalavadiya" ,
66 "license" : " MIT" ,
Original file line number Diff line number Diff line change @@ -17,9 +17,9 @@ export interface IStyledProps {
1717
1818export interface ISelectProps {
1919 options : Option [ ] ;
20- selected : any [ ] ;
20+ selected : Option [ ] ;
2121 onChange ?;
22- valueRenderer ?: ( selected : any [ ] , options : Option [ ] ) => string ;
22+ valueRenderer ?: ( selected : Option [ ] , options : Option [ ] ) => string ;
2323 ItemRenderer ?: Function ;
2424 selectAllLabel ?: string ;
2525 isLoading ?: boolean ;
Original file line number Diff line number Diff line change @@ -12,12 +12,7 @@ const DropdownHeader = ({
1212 const allSelected = selected . length === options . length ;
1313 const customText = valueRenderer && valueRenderer ( selected , options ) ;
1414
15- const getSelectedText = ( ) => {
16- const selectedOptions = selected . map ( s =>
17- options . find ( ( o : any ) => o . value === s )
18- ) ;
19- return selectedOptions . map ( ( s : any ) => ( s ? s . label : "" ) ) . join ( ", " ) ;
20- } ;
15+ const getSelectedText = ( ) => selected . map ( s => s . label ) . join ( ", " ) ;
2116
2217 if ( noneSelected ) {
2318 return (
Original file line number Diff line number Diff line change @@ -15,9 +15,9 @@ import SelectList from "./select-list";
1515interface ISelectPanelProps {
1616 ItemRenderer ?: Function ;
1717 options : Option [ ] ;
18- selected : any [ ] ;
18+ selected : Option [ ] ;
1919 selectAllLabel ?: string ;
20- onChange : ( selected : Array < any > ) => void ;
20+ onChange : ( selected : Option [ ] ) => void ;
2121 disabled ?: boolean ;
2222 disableSearch ?: boolean ;
2323 hasSelectAll : boolean ;
@@ -58,7 +58,7 @@ export const SelectPanel = (props: ISelectPanelProps) => {
5858 value : ""
5959 } ;
6060
61- const selectAll = ( ) => onChange ( options . map ( o => o . value ) ) ;
61+ const selectAll = ( ) => onChange ( options ) ;
6262
6363 const selectNone = ( ) => onChange ( [ ] ) ;
6464
Original file line number Diff line number Diff line change @@ -56,7 +56,6 @@ const SelectItem = ({
5656
5757 const updateFocus = ( ) => {
5858 if ( focused && itemRef ) {
59- console . log ( itemRef ) ;
6059 itemRef . current . focus ( ) ;
6160 }
6261 } ;
Original file line number Diff line number Diff line change @@ -10,9 +10,9 @@ import SelectItem from "./select-item";
1010interface ISelectListProps {
1111 focusIndex : number ;
1212 ItemRenderer ?: Function ;
13- options : object [ ] ;
14- selected : object [ ] ;
15- onChange : ( selected : any ) => void ;
13+ options : Option [ ] ;
14+ selected : Option [ ] ;
15+ onChange : ( selected : Option [ ] ) => void ;
1616 onClick : Function ;
1717 disabled ?: boolean ;
1818}
@@ -38,16 +38,11 @@ const SelectList = ({
3838 if ( disabled ) {
3939 return ;
4040 }
41- if ( checked ) {
42- onChange ( [ ...selected , option . value ] ) ;
43- } else {
44- const index = selected . indexOf ( option . value ) ;
45- const removed = [
46- ...selected . slice ( 0 , index ) ,
47- ...selected . slice ( index + 1 )
48- ] ;
49- onChange ( removed ) ;
50- }
41+ onChange (
42+ checked
43+ ? [ ...selected , option ]
44+ : selected . filter ( ( o : any ) => o . value !== option . value )
45+ ) ;
5146 } ;
5247
5348 return (
@@ -58,7 +53,7 @@ const SelectList = ({
5853 focused = { focusIndex === i }
5954 option = { o }
6055 onSelectionChanged = { c => handleSelectionChanged ( o , c ) }
61- checked = { selected . includes ( o . value ) }
56+ checked = { selected . find ( s => s . value === o . value ) ? true : false }
6257 onClick = { e => onClick ( e , i ) }
6358 itemRenderer = { ItemRenderer }
6459 disabled = { o . disabled || disabled }
You can’t perform that action at this time.
0 commit comments