navidrome/ui/src/playlist/PlaylistSongBulkActions.jsx
Deluan 1c192d8a6d fix(ui): replace bulk "delete" label with "remove" in playlists
Fix #3525

Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-06 07:54:59 -05:00

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