45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
import React, { cloneElement } from 'react'
|
|
import { sanitizeListRestProps, TopToolbar } from 'react-admin'
|
|
import { useMediaQuery } from '@material-ui/core'
|
|
import { ShuffleAllButton, ToggleFieldsMenu } from '../common'
|
|
|
|
export const SongListActions = ({
|
|
currentSort,
|
|
className,
|
|
resource,
|
|
filters,
|
|
displayedFilters,
|
|
filterValues,
|
|
permanentFilter,
|
|
exporter,
|
|
basePath,
|
|
selectedIds,
|
|
onUnselectItems,
|
|
showFilter,
|
|
maxResults,
|
|
total,
|
|
ids,
|
|
...rest
|
|
}) => {
|
|
const isNotSmall = useMediaQuery((theme) => theme.breakpoints.up('sm'))
|
|
return (
|
|
<TopToolbar className={className} {...sanitizeListRestProps(rest)}>
|
|
{filters &&
|
|
cloneElement(filters, {
|
|
resource,
|
|
showFilter,
|
|
displayedFilters,
|
|
filterValues,
|
|
context: 'button',
|
|
})}
|
|
<ShuffleAllButton filters={filterValues} />
|
|
{isNotSmall && <ToggleFieldsMenu resource="song" />}
|
|
</TopToolbar>
|
|
)
|
|
}
|
|
|
|
SongListActions.defaultProps = {
|
|
selectedIds: [],
|
|
onUnselectItems: () => null,
|
|
}
|