mirror of
https://github.com/navidrome/navidrome.git
synced 2025-04-14 11:17:19 +03:00
43 lines
1.0 KiB
JavaScript
43 lines
1.0 KiB
JavaScript
import React, { Fragment, useEffect } from 'react'
|
|
import {
|
|
BulkDeleteButton,
|
|
useUnselectAll,
|
|
ResourceContextProvider,
|
|
} from 'react-admin'
|
|
import { MdOutlinePlaylistRemove } from 'react-icons/md'
|
|
import PropTypes from 'prop-types'
|
|
|
|
// Replace original resource with "fake" one for removing tracks from playlist
|
|
const PlaylistSongBulkActions = ({
|
|
playlistId,
|
|
resource,
|
|
onUnselectItems,
|
|
...rest
|
|
}) => {
|
|
const unselectAll = useUnselectAll()
|
|
useEffect(() => {
|
|
unselectAll('playlistTrack')
|
|
}, [unselectAll])
|
|
|
|
const mappedResource = `playlist/${playlistId}/tracks`
|
|
return (
|
|
<ResourceContextProvider value={mappedResource}>
|
|
<Fragment>
|
|
<BulkDeleteButton
|
|
{...rest}
|
|
label={'ra.action.remove'}
|
|
icon={<MdOutlinePlaylistRemove />}
|
|
resource={mappedResource}
|
|
onClick={onUnselectItems}
|
|
/>
|
|
</Fragment>
|
|
</ResourceContextProvider>
|
|
)
|
|
}
|
|
|
|
PlaylistSongBulkActions.propTypes = {
|
|
playlistId: PropTypes.string.isRequired,
|
|
}
|
|
|
|
export default PlaylistSongBulkActions
|