navidrome/ui/src/song/SongListActions.js

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,
}