Add "Play Later" action to AlbumContextMenu

This commit is contained in:
Deluan 2020-05-05 12:20:41 -04:00
parent 23836d7c3c
commit 0833d87f94
2 changed files with 9 additions and 5 deletions

View File

@ -6,7 +6,7 @@ import MoreVertIcon from '@material-ui/icons/MoreVert'
import { makeStyles } from '@material-ui/core/styles'
import { useDataProvider, useNotify, useTranslate } from 'react-admin'
import { useDispatch } from 'react-redux'
import { playAlbum, shuffleAlbum } from '../audioplayer'
import { addTracks, playAlbum, shuffleAlbum } from '../audioplayer'
const useStyles = makeStyles({
icon: {
@ -27,6 +27,10 @@ const AlbumContextMenu = ({ record, color }) => {
label: translate('resources.album.actions.playAll'),
action: (data, id) => playAlbum(id, data),
},
addToQueue: {
label: translate('resources.album.actions.addToQueue'),
action: (data) => addTracks(Object.values(data)),
},
shuffle: {
label: translate('resources.album.actions.shuffle'),
action: (data) => shuffleAlbum(data),

View File

@ -22,10 +22,10 @@ const AddToQueueButton = ({ selectedIds }) => {
.getMany('song', { ids: selectedIds })
.then((response) => {
// Add tracks to a map for easy lookup by ID, needed for the next step
const tracks = response.data.reduce((acc, cur) => {
acc[cur.id] = cur
return acc
}, {})
const tracks = response.data.reduce(
(acc, cur) => ({ ...acc, [cur.id]: cur }),
{}
)
// Add the tracks to the queue in the selection order
dispatch(addTracks(selectedIds.map((id) => tracks[id])))
})