Tracklists are sortable with ONLY the first bunch; Playlist and queue sorting
This commit is contained in:
@ -59,16 +59,17 @@ export function dragEnd(){
|
||||
return { type: 'DRAG_END' }
|
||||
}
|
||||
|
||||
export function reorderPlaylistTracks( uri, indexes, to_index, snapshot_id = false ){
|
||||
export function reorderPlaylistTracks( uri, indexes, insert_before, snapshot_id = false ){
|
||||
var range = helpers.createRange( indexes );
|
||||
switch( helpers.uriSource( uri ) ){
|
||||
|
||||
case 'spotify':
|
||||
// TODO: handle bunched selected tracks (ie non-continuious indexes)
|
||||
return {
|
||||
type: 'SPOTIFY_REORDER_PLAYLIST_TRACKS',
|
||||
uri: uri,
|
||||
indexes: indexes,
|
||||
to_index: to_index,
|
||||
range_start: range.start,
|
||||
range_length: range.length,
|
||||
insert_before: insert_before,
|
||||
snapshot_id: snapshot_id
|
||||
}
|
||||
|
||||
@ -76,8 +77,9 @@ export function reorderPlaylistTracks( uri, indexes, to_index, snapshot_id = fal
|
||||
return {
|
||||
type: 'MOPIDY_REORDER_PLAYLIST_TRACKS',
|
||||
uri: uri,
|
||||
indexes: indexes,
|
||||
to_index: to_index
|
||||
range_start: range.start,
|
||||
range_length: range.length,
|
||||
insert_before: insert_before
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -233,13 +233,26 @@ export default function reducer(ui = {}, action){
|
||||
case 'PLAYLIST_TRACKS_LOADED':
|
||||
var playlist = Object.assign({}, ui.playlist, { tracks: action.tracks })
|
||||
return Object.assign({}, ui, { playlist: playlist });
|
||||
/*
|
||||
|
||||
case 'PLAYLIST_TRACKS_REORDERED':
|
||||
var snapshot_id = null
|
||||
if( action.snapshot_id ) snapshot_id = action.snapshot_id
|
||||
var playlist = Object.assign({}, ui.playlist, { tracks: action.tracks, snapshot_id: snapshot_id })
|
||||
var tracks = Object.assign([], ui.playlist.tracks)
|
||||
|
||||
// handle insert_before offset if we're moving BENEATH where we're slicing tracks
|
||||
var insert_before = action.insert_before
|
||||
if( insert_before > action.range_start ) insert_before = insert_before - action.range_length
|
||||
|
||||
// cut our moved tracks into a new array
|
||||
var tracks_to_move = tracks.splice(action.range_start, action.range_length)
|
||||
tracks_to_move.reverse()
|
||||
|
||||
for( i = 0; i < tracks_to_move.length; i++ ){
|
||||
tracks.splice(insert_before, 0, tracks_to_move[i])
|
||||
}
|
||||
|
||||
var playlist = Object.assign({}, ui.playlist, { snapshot_id: snapshot_id, tracks: tracks })
|
||||
return Object.assign({}, ui, { playlist: playlist });
|
||||
*/
|
||||
|
||||
/**
|
||||
* Library Playlists
|
||||
|
||||
Reference in New Issue
Block a user