@@ -57,14 +57,7 @@ export const HeightInitialWithOverflowingItemsStory = () => {
57
57
const [ selected , setSelected ] = useState < ItemInput [ ] > ( items . slice ( 1 , 3 ) )
58
58
const [ filter , setFilter ] = useState ( '' )
59
59
const filteredItems = items . filter ( item => item . text . toLowerCase ( ) . startsWith ( filter . toLowerCase ( ) ) )
60
- // design guidelines say to sort selected items first
61
- const selectedItemsSortedFirst = filteredItems . sort ( ( a , b ) => {
62
- const aIsSelected = selected . some ( selectedItem => selectedItem . text === a . text )
63
- const bIsSelected = selected . some ( selectedItem => selectedItem . text === b . text )
64
- if ( aIsSelected && ! bIsSelected ) return - 1
65
- if ( ! aIsSelected && bIsSelected ) return 1
66
- return 0
67
- } )
60
+
68
61
const [ open , setOpen ] = useState ( false )
69
62
70
63
return (
@@ -79,12 +72,12 @@ export const HeightInitialWithOverflowingItemsStory = () => {
79
72
placeholder = "Select labels" // button text when no items are selected
80
73
open = { open }
81
74
onOpenChange = { setOpen }
82
- items = { selectedItemsSortedFirst }
75
+ items = { filteredItems }
83
76
selected = { selected }
84
77
onSelectedChange = { setSelected }
85
78
onFilterChange = { setFilter }
86
79
overlayProps = { { width : 'small' , height : 'initial' , maxHeight : 'xsmall' } }
87
- message = { selectedItemsSortedFirst . length === 0 ? NoResultsMessage ( filter ) : undefined }
80
+ message = { filteredItems . length === 0 ? NoResultsMessage ( filter ) : undefined }
88
81
/>
89
82
</ FormControl >
90
83
)
@@ -96,14 +89,7 @@ export const HeightInitialWithUnderflowingItemsStory = () => {
96
89
const [ selected , setSelected ] = useState < ItemInput [ ] > ( [ underflowingItems [ 0 ] ] )
97
90
const [ filter , setFilter ] = useState ( '' )
98
91
const filteredItems = underflowingItems . filter ( item => item . text . toLowerCase ( ) . startsWith ( filter . toLowerCase ( ) ) )
99
- // design guidelines say to sort selected items first
100
- const selectedItemsSortedFirst = filteredItems . sort ( ( a , b ) => {
101
- const aIsSelected = selected . some ( selectedItem => selectedItem . text === a . text )
102
- const bIsSelected = selected . some ( selectedItem => selectedItem . text === b . text )
103
- if ( aIsSelected && ! bIsSelected ) return - 1
104
- if ( ! aIsSelected && bIsSelected ) return 1
105
- return 0
106
- } )
92
+
107
93
const [ open , setOpen ] = useState ( false )
108
94
109
95
return (
@@ -118,13 +104,13 @@ export const HeightInitialWithUnderflowingItemsStory = () => {
118
104
placeholder = "Select labels" // button text when no items are selected
119
105
open = { open }
120
106
onOpenChange = { setOpen }
121
- items = { selectedItemsSortedFirst }
107
+ items = { filteredItems }
122
108
selected = { selected }
123
109
onSelectedChange = { setSelected }
124
110
onFilterChange = { setFilter }
125
111
showItemDividers = { true }
126
112
overlayProps = { { width : 'small' , height : 'initial' , maxHeight : 'xsmall' } }
127
- message = { selectedItemsSortedFirst . length === 0 ? NoResultsMessage ( filter ) : undefined }
113
+ message = { filteredItems . length === 0 ? NoResultsMessage ( filter ) : undefined }
128
114
/>
129
115
</ FormControl >
130
116
)
@@ -139,14 +125,7 @@ export const HeightInitialWithUnderflowingItemsAfterFetch = () => {
139
125
( ) => fetchedItems . filter ( item => item . text . toLowerCase ( ) . startsWith ( filter . toLowerCase ( ) ) ) ,
140
126
[ fetchedItems , filter ] ,
141
127
)
142
- // design guidelines say to sort selected items first
143
- const selectedItemsSortedFirst = filteredItems . sort ( ( a , b ) => {
144
- const aIsSelected = selected . some ( selectedItem => selectedItem . text === a . text )
145
- const bIsSelected = selected . some ( selectedItem => selectedItem . text === b . text )
146
- if ( aIsSelected && ! bIsSelected ) return - 1
147
- if ( ! aIsSelected && bIsSelected ) return 1
148
- return 0
149
- } )
128
+
150
129
const [ open , setOpen ] = useState ( false )
151
130
const [ height , setHeight ] = useState < OverlayProps [ 'height' ] > ( 'auto' )
152
131
@@ -171,13 +150,13 @@ export const HeightInitialWithUnderflowingItemsAfterFetch = () => {
171
150
open = { open }
172
151
onOpenChange = { onOpenChange }
173
152
loading = { filteredItems . length === 0 && ! filter }
174
- items = { selectedItemsSortedFirst }
153
+ items = { filteredItems }
175
154
selected = { selected }
176
155
onSelectedChange = { setSelected }
177
156
onFilterChange = { setFilter }
178
157
showItemDividers = { true }
179
158
overlayProps = { { width : 'small' , height, maxHeight : 'xsmall' } }
180
- message = { selectedItemsSortedFirst . length === 0 ? NoResultsMessage ( filter ) : undefined }
159
+ message = { filteredItems . length === 0 ? NoResultsMessage ( filter ) : undefined }
181
160
/>
182
161
</ FormControl >
183
162
)
@@ -188,14 +167,7 @@ export const AboveTallBody = () => {
188
167
const [ selected , setSelected ] = useState < ItemInput [ ] > ( items . slice ( 1 , 3 ) )
189
168
const [ filter , setFilter ] = useState ( '' )
190
169
const filteredItems = items . filter ( item => item . text . toLowerCase ( ) . startsWith ( filter . toLowerCase ( ) ) )
191
- // design guidelines say to sort selected items first
192
- const selectedItemsSortedFirst = filteredItems . sort ( ( a , b ) => {
193
- const aIsSelected = selected . some ( selectedItem => selectedItem . text === a . text )
194
- const bIsSelected = selected . some ( selectedItem => selectedItem . text === b . text )
195
- if ( aIsSelected && ! bIsSelected ) return - 1
196
- if ( ! aIsSelected && bIsSelected ) return 1
197
- return 0
198
- } )
170
+
199
171
const [ open , setOpen ] = useState ( false )
200
172
return (
201
173
< FormControl >
@@ -209,12 +181,12 @@ export const AboveTallBody = () => {
209
181
placeholder = "Select labels" // button text when no items are selected
210
182
open = { open }
211
183
onOpenChange = { setOpen }
212
- items = { selectedItemsSortedFirst }
184
+ items = { filteredItems }
213
185
selected = { selected }
214
186
onSelectedChange = { setSelected }
215
187
onFilterChange = { setFilter }
216
188
showItemDividers = { true }
217
- message = { selectedItemsSortedFirst . length === 0 ? NoResultsMessage ( filter ) : undefined }
189
+ message = { filteredItems . length === 0 ? NoResultsMessage ( filter ) : undefined }
218
190
/>
219
191
< div
220
192
style = { {
@@ -238,23 +210,13 @@ export const HeightVariationsAndScroll = () => {
238
210
// Example A
239
211
const [ selectedA , setSelectedA ] = React . useState < ItemInput | undefined > ( longItems [ 0 ] )
240
212
const filteredItemsA = longItems . filter ( item => item . text . toLowerCase ( ) . startsWith ( filter . toLowerCase ( ) ) )
241
- // design guidelines say to sort selected items first
242
- const selectedItemsSortedFirstA = filteredItemsA . sort ( ( a , b ) => {
243
- if ( a . text === selectedA ?. text ) return - 1
244
- if ( b . text === selectedA ?. text ) return 1
245
- return 0
246
- } )
213
+
247
214
const [ openA , setOpenA ] = useState ( false )
248
215
249
216
// Example B
250
217
const [ selectedB , setSelectedB ] = React . useState < ItemInput | undefined > ( longItems [ 0 ] )
251
218
const filteredItemsB = longItems . filter ( item => item . text . toLowerCase ( ) . startsWith ( filter . toLowerCase ( ) ) )
252
- // design guidelines say to sort selected items first
253
- const selectedItemsSortedFirstB = filteredItemsB . sort ( ( a , b ) => {
254
- if ( a . text === selectedB ?. text ) return - 1
255
- if ( b . text === selectedB ?. text ) return 1
256
- return 0
257
- } )
219
+
258
220
const [ openB , setOpenB ] = useState ( false )
259
221
260
222
return (
@@ -270,13 +232,13 @@ export const HeightVariationsAndScroll = () => {
270
232
placeholder = "Select labels" // button text when no items are selected
271
233
open = { openA }
272
234
onOpenChange = { setOpenA }
273
- items = { selectedItemsSortedFirstA }
235
+ items = { filteredItemsA }
274
236
selected = { selectedA }
275
237
onSelectedChange = { setSelectedA }
276
238
onFilterChange = { setFilter }
277
239
showItemDividers = { true }
278
240
overlayProps = { { height : 'medium' } }
279
- message = { selectedItemsSortedFirstA . length === 0 ? NoResultsMessage ( filter ) : undefined }
241
+ message = { filteredItemsA . length === 0 ? NoResultsMessage ( filter ) : undefined }
280
242
/>
281
243
</ FormControl >
282
244
< br />
@@ -291,7 +253,7 @@ export const HeightVariationsAndScroll = () => {
291
253
placeholder = "Select labels" // button text when no items are selected
292
254
open = { openB }
293
255
onOpenChange = { setOpenB }
294
- items = { selectedItemsSortedFirstB }
256
+ items = { filteredItemsB }
295
257
selected = { selectedB }
296
258
onSelectedChange = { setSelectedB }
297
259
onFilterChange = { setFilter }
@@ -300,7 +262,7 @@ export const HeightVariationsAndScroll = () => {
300
262
height : 'auto' ,
301
263
maxHeight : 'medium' ,
302
264
} }
303
- message = { selectedItemsSortedFirstB . length === 0 ? NoResultsMessage ( filter ) : undefined }
265
+ message = { filteredItemsB . length === 0 ? NoResultsMessage ( filter ) : undefined }
304
266
/>
305
267
</ FormControl >
306
268
</ >
@@ -317,14 +279,7 @@ export const CustomItemRenderer = () => {
317
279
const [ selected , setSelected ] = useState < ItemInput [ ] > ( items . slice ( 1 , 3 ) )
318
280
const [ filter , setFilter ] = useState ( '' )
319
281
const filteredItems = items . filter ( item => item . text . toLowerCase ( ) . startsWith ( filter . toLowerCase ( ) ) )
320
- // design guidelines say to sort selected items first
321
- const selectedItemsSortedFirst = filteredItems . sort ( ( a , b ) => {
322
- const aIsSelected = selected . some ( selectedItem => selectedItem . text === a . text )
323
- const bIsSelected = selected . some ( selectedItem => selectedItem . text === b . text )
324
- if ( aIsSelected && ! bIsSelected ) return - 1
325
- if ( ! aIsSelected && bIsSelected ) return 1
326
- return 0
327
- } )
282
+
328
283
const [ open , setOpen ] = useState ( false )
329
284
330
285
return (
@@ -339,7 +294,7 @@ export const CustomItemRenderer = () => {
339
294
) }
340
295
open = { open }
341
296
onOpenChange = { setOpen }
342
- items = { selectedItemsSortedFirst }
297
+ items = { filteredItems }
343
298
selected = { selected }
344
299
onSelectedChange = { setSelected }
345
300
onFilterChange = { setFilter }
@@ -369,7 +324,7 @@ export const CustomItemRenderer = () => {
369
324
</ Box >
370
325
</ ActionList . Item >
371
326
) }
372
- message = { selectedItemsSortedFirst . length === 0 ? NoResultsMessage ( filter ) : undefined }
327
+ message = { filteredItems . length === 0 ? NoResultsMessage ( filter ) : undefined }
373
328
/>
374
329
</ FormControl >
375
330
)
@@ -392,14 +347,7 @@ export const ItemsInScope = () => {
392
347
const [ selected , setSelected ] = useState < ItemInput [ ] > ( items . slice ( 1 , 3 ) )
393
348
const [ filter , setFilter ] = useState ( '' )
394
349
const filteredItems = items . filter ( item => item . text . toLowerCase ( ) . startsWith ( filter . toLowerCase ( ) ) )
395
- // design guidelines say to sort selected items first
396
- const selectedItemsSortedFirst = filteredItems . sort ( ( a , b ) => {
397
- const aIsSelected = selected . some ( selectedItem => selectedItem . text === a . text )
398
- const bIsSelected = selected . some ( selectedItem => selectedItem . text === b . text )
399
- if ( aIsSelected && ! bIsSelected ) return - 1
400
- if ( ! aIsSelected && bIsSelected ) return 1
401
- return 0
402
- } )
350
+
403
351
const [ open , setOpen ] = useState ( false )
404
352
return (
405
353
< FormControl >
@@ -409,11 +357,11 @@ export const ItemsInScope = () => {
409
357
placeholder = "Select labels" // button text when no items are selected
410
358
open = { open }
411
359
onOpenChange = { setOpen }
412
- items = { selectedItemsSortedFirst }
360
+ items = { filteredItems }
413
361
selected = { selected }
414
362
onSelectedChange = { setSelected }
415
363
onFilterChange = { setFilter }
416
- message = { selectedItemsSortedFirst . length === 0 ? NoResultsMessage ( filter ) : undefined }
364
+ message = { filteredItems . length === 0 ? NoResultsMessage ( filter ) : undefined }
417
365
/>
418
366
</ FormControl >
419
367
)
0 commit comments