@@ -13,13 +13,7 @@ const ConditionalWrapper = ({ condition, wrapper, children }) => {
13
13
return condition ? wrapper ( children ) : children ;
14
14
} ;
15
15
16
- function ButtonGroupFilterButton ( {
17
- tooltipContent,
18
- onClick,
19
- content,
20
- selected,
21
- type = 'image' ,
22
- } ) {
16
+ function ButtonGroupFilterButton ( { tooltipContent, onClick, content, selected, type = 'image' } ) {
23
17
return (
24
18
< Tooltip placement = "top" title = { tooltipContent } arrow >
25
19
< button
@@ -53,7 +47,7 @@ function SliderFilter({
53
47
valueLabelDisplay = 'auto' ,
54
48
} ) {
55
49
if ( ! ! marks && ! Array . isArray ( marks ) ) {
56
- marks = Object . keys ( marks ) . map ( val => {
50
+ marks = Object . keys ( marks ) . map ( ( val ) => {
57
51
return {
58
52
label : String ( marks [ val ] ) ,
59
53
value : parseInt ( val ) ,
@@ -99,7 +93,7 @@ function RangeFilter({
99
93
valueLabelDisplay,
100
94
} ) {
101
95
if ( ! ! marks && ! Array . isArray ( marks ) ) {
102
- marks = Object . keys ( marks ) . map ( val => {
96
+ marks = Object . keys ( marks ) . map ( ( val ) => {
103
97
return {
104
98
label : String ( marks [ val ] ) ,
105
99
value : val ,
@@ -166,7 +160,7 @@ const selectFilterStyle = {
166
160
multiValueLabel : ( provided ) => ( {
167
161
...provided ,
168
162
color : 'var(--color-yellow-light)' ,
169
- padding : '0.1rem'
163
+ padding : '0.1rem' ,
170
164
} ) ,
171
165
menu : ( provided ) => ( {
172
166
...provided ,
@@ -208,6 +202,9 @@ const selectFilterStyle = {
208
202
} ) ,
209
203
} ;
210
204
205
+ // Export the style object so pages can reuse the same react-select styles
206
+ export { selectFilterStyle } ;
207
+
211
208
function SelectFilter ( {
212
209
placeholder,
213
210
defaultValue,
@@ -231,11 +228,7 @@ function SelectFilter({
231
228
condition = { tooltip }
232
229
wrapper = { ( children ) => {
233
230
return (
234
- < Tooltip
235
- placement = "bottom"
236
- title = { tooltip }
237
- arrow
238
- >
231
+ < Tooltip placement = "bottom" title = { tooltip } arrow >
239
232
{ children }
240
233
</ Tooltip >
241
234
) ;
@@ -253,7 +246,7 @@ function SelectFilter({
253
246
< span className = { 'single-filter-label' } > { label } </ span >
254
247
{ labelChildren }
255
248
</ label >
256
- )
249
+ ) ;
257
250
} }
258
251
>
259
252
< Select
@@ -270,7 +263,9 @@ function SelectFilter({
270
263
options = { options }
271
264
ref = { parentRef }
272
265
styles = { selectFilterStyle }
273
- noOptionsMessage = { ( ) => { return t ( 'All options already selected' ) ; } }
266
+ noOptionsMessage = { ( ) => {
267
+ return t ( 'All options already selected' ) ;
268
+ } }
274
269
/>
275
270
</ ConditionalWrapper >
276
271
</ ConditionalWrapper >
@@ -299,28 +294,24 @@ function SelectItemFilter({
299
294
const selectInputRef = useRef ( null ) ;
300
295
const { t } = useTranslation ( ) ;
301
296
302
- const elements = [ (
297
+ const elements = [
303
298
< SelectFilter
304
299
key = { 'select-item-filter' }
305
300
placeholder = { placeholder }
306
301
label = { label }
307
302
options = { items . map ( ( item ) => {
308
303
return {
309
- label : shortNames ? item . shortName : item . name ,
304
+ label : shortNames ? item . shortName : item . name ,
310
305
value : item [ valueField ] ,
311
- selected : selection && selection . id === item . id
306
+ selected : selection && selection . id === item . id ,
312
307
} ;
313
308
} ) }
314
309
onChange = { ( event ) => {
315
310
if ( ! event ) {
316
311
return true ;
317
312
}
318
313
319
- setSelectedItem (
320
- items . find (
321
- ( item ) => item . id === event . value ,
322
- ) ,
323
- ) ;
314
+ setSelectedItem ( items . find ( ( item ) => item . id === event . value ) ) ;
324
315
if ( onChange ) {
325
316
onChange ( event ) ;
326
317
}
@@ -334,31 +325,28 @@ function SelectItemFilter({
334
325
tooltipDisabled = { tooltipDisabled }
335
326
onMenuOpen = { onMenuOpen }
336
327
onMenuClose = { onMenuClose }
337
- />
338
- ) ] ;
328
+ /> ,
329
+ ] ;
339
330
340
331
if ( selectedItem && showImage ) {
341
- elements . push ( (
342
- < Tooltip
343
- title = { t ( 'Clear selection' ) }
344
- arrow
345
- >
332
+ elements . push (
333
+ < Tooltip title = { t ( 'Clear selection' ) } arrow >
346
334
< img
347
335
key = { 'select-item-filter-selected-icon' }
348
336
alt = { `${ selectedItem . name } -icon` }
349
337
onClick = { ( ) => {
350
338
selectInputRef . current ?. clearValue ( ) ;
351
339
setSelectedItem ( false ) ;
352
340
if ( onChange ) {
353
- onChange ( { label : '' , value : false } ) ;
341
+ onChange ( { label : '' , value : false } ) ;
354
342
}
355
343
} }
356
344
loading = "lazy"
357
345
src = { selectedItem . iconLink }
358
- style = { { cursor : 'pointer' } }
346
+ style = { { cursor : 'pointer' } }
359
347
/>
360
- </ Tooltip >
361
- ) )
348
+ </ Tooltip > ,
349
+ ) ;
362
350
}
363
351
return elements ;
364
352
}
@@ -381,11 +369,7 @@ function InputFilter({
381
369
condition = { tooltip }
382
370
wrapper = { ( children ) => {
383
371
return (
384
- < Tooltip
385
- placement = "bottom"
386
- title = { tooltip }
387
- arrow
388
- >
372
+ < Tooltip placement = "bottom" title = { tooltip } arrow >
389
373
{ children }
390
374
</ Tooltip >
391
375
) ;
@@ -410,14 +394,14 @@ function InputFilter({
410
394
) ;
411
395
}
412
396
413
- function Filter ( { center, children, fullWidth } ) {
397
+ function Filter ( { center, children, fullWidth, className } ) {
414
398
const [ showFilter , setShowFilter ] = useState ( false ) ;
415
399
const toggleButton = useRef ( ) ;
416
400
useEffect ( ( ) => {
417
401
if ( ! toggleButton . current ) {
418
402
return ;
419
403
}
420
- const intersectionObserver = new IntersectionObserver ( entries => {
404
+ const intersectionObserver = new IntersectionObserver ( ( entries ) => {
421
405
if ( ! toggleButton . current ) {
422
406
return ;
423
407
}
@@ -447,7 +431,7 @@ function Filter({ center, children, fullWidth }) {
447
431
< div
448
432
className = { `filter-wrapper${ showFilter ? ' open' : '' } ${
449
433
center ? ' filter-wrapper-center' : ''
450
- } ${ fullWidth ? ' full-width' : '' } `}
434
+ } ${ fullWidth ? ' full-width' : '' } ${ className || '' } `}
451
435
key = "page-filter"
452
436
>
453
437
< div className = { 'filter-content-wrapper' } >
0 commit comments