fix(User Playlists): fix track reordering

This commit is contained in:
Samidy 2026-02-16 17:36:49 +03:00
parent d0678cfc6c
commit 7496585b1b

View file

@ -2514,9 +2514,8 @@ export class UIRenderer {
descEl.textContent = playlistData.description || ''; descEl.textContent = playlistData.description || '';
const originalTracks = [...tracks]; const originalTracks = [...tracks];
// Default sort: first available option (Playlist Order if no addedAt, else Date Added Newest) const savedSort = localStorage.getItem(`playlist-sort-${playlistId}`);
const hasAddedDate = tracks.some((t) => t.addedAt); currentSort = savedSort || 'custom';
currentSort = hasAddedDate ? 'added-newest' : 'custom';
let currentTracks = sortTracks(originalTracks, currentSort); let currentTracks = sortTracks(originalTracks, currentSort);
const renderTracks = () => { const renderTracks = () => {
@ -2563,6 +2562,7 @@ export class UIRenderer {
const applySort = (sortType) => { const applySort = (sortType) => {
currentSort = sortType; currentSort = sortType;
localStorage.setItem(`playlist-sort-${playlistId}`, sortType);
currentTracks = sortTracks(originalTracks, sortType); currentTracks = sortTracks(originalTracks, sortType);
renderTracks(); renderTracks();
}; };
@ -2653,8 +2653,9 @@ export class UIRenderer {
descEl.textContent = playlist.description || ''; descEl.textContent = playlist.description || '';
const originalTracks = [...tracks]; const originalTracks = [...tracks];
let currentTracks = [...tracks]; const savedSort = localStorage.getItem(`playlist-sort-${playlistId}`);
let currentSort = 'custom'; let currentSort = savedSort || 'custom';
let currentTracks = sortTracks(originalTracks, currentSort);
const renderTracks = () => { const renderTracks = () => {
tracklistContainer.innerHTML = ` tracklistContainer.innerHTML = `
@ -2670,6 +2671,7 @@ export class UIRenderer {
const applySort = (sortType) => { const applySort = (sortType) => {
currentSort = sortType; currentSort = sortType;
localStorage.setItem(`playlist-sort-${playlistId}`, sortType);
currentTracks = sortTracks(originalTracks, sortType); currentTracks = sortTracks(originalTracks, sortType);
renderTracks(); renderTracks();
}; };
@ -3400,8 +3402,10 @@ export class UIRenderer {
}); });
const dragStart = (e) => { const dragStart = (e) => {
draggedElement = e.target; draggedElement = e.target.closest('.track-item');
draggedIndex = parseInt(e.target.dataset.index); if (!draggedElement) return;
draggedIndex = parseInt(draggedElement.dataset.index);
e.dataTransfer.effectAllowed = 'move'; e.dataTransfer.effectAllowed = 'move';
e.dataTransfer.setData('text/plain', draggedIndex); e.dataTransfer.setData('text/plain', draggedIndex);
draggedElement.classList.add('dragging'); draggedElement.classList.add('dragging');