Only add to playlist songs from selected discNumber (if present)

This commit is contained in:
Deluan
2020-05-29 16:42:13 -04:00
parent 3fe8b02cbd
commit 8f8d992da4
3 changed files with 14 additions and 33 deletions
+5 -22
View File
@@ -3,8 +3,8 @@ import { useDispatch, useSelector } from 'react-redux'
import {
useCreate,
useDataProvider,
useTranslate,
useNotify,
useTranslate,
} from 'react-admin'
import {
Button,
@@ -17,7 +17,7 @@ import { closeAddToPlaylist } from './dialogState'
import SelectPlaylistInput from './SelectPlaylistInput'
const AddToPlaylistDialog = () => {
const { open, albumId, selectedIds, onSuccess } = useSelector(
const { open, selectedIds, onSuccess } = useSelector(
(state) => state.addToPlaylistDialog
)
const dispatch = useDispatch()
@@ -37,31 +37,14 @@ const AddToPlaylistDialog = () => {
}
)
const addTracksToPlaylist = (selectedIds, playlistId) =>
const addToPlaylist = (playlistId) => {
dataProvider
.create('playlistTrack', {
data: { ids: selectedIds },
filter: { playlist_id: playlistId },
})
.then(() => selectedIds.length)
const addAlbumToPlaylist = (albumId, playlistId) =>
dataProvider
.getList('albumSong', {
pagination: { page: 1, perPage: -1 },
sort: { field: 'discNumber asc, trackNumber asc', order: 'ASC' },
filter: { album_id: albumId },
})
.then((response) => response.data.map((song) => song.id))
.then((ids) => addTracksToPlaylist(ids, playlistId))
const addToPlaylist = (playlistId) => {
const add = albumId
? addAlbumToPlaylist(albumId, playlistId)
: addTracksToPlaylist(selectedIds, playlistId)
add
.then((len) => {
.then(() => {
const len = selectedIds.length
notify('message.songsAddedToPlaylist', 'info', { smart_count: len })
onSuccess && onSuccess(value, len)
})