[sorting] Add sorting to artist track pages
This commit is contained in:
@ -280,6 +280,7 @@ artist:
|
||||
disc_track: Track number
|
||||
name: Name
|
||||
album: Album
|
||||
date: Date
|
||||
related_artists:
|
||||
title: Related artists
|
||||
about:
|
||||
|
||||
@ -159,11 +159,21 @@ const sortItems = (array, property, reverse = false) => {
|
||||
return item.album ? item.album.name : undefined;
|
||||
case 'user':
|
||||
return item.user ? item.user.id : undefined;
|
||||
case 'date':
|
||||
return item.album?.date || item.date || '';
|
||||
default:
|
||||
return item[property];
|
||||
}
|
||||
};
|
||||
|
||||
// Special handling for date sort: sort by date first, then track number
|
||||
if (property === 'date') {
|
||||
return orderBy(array, [
|
||||
item => item.album?.date || item.date || '',
|
||||
item => item.track_number || 0,
|
||||
], [reverse ? 'desc' : 'asc', 'asc']);
|
||||
}
|
||||
|
||||
return orderBy(array, sorter, (reverse ? 'desc' : 'asc'));
|
||||
};
|
||||
|
||||
|
||||
@ -55,6 +55,10 @@ export default ({ artist }) => {
|
||||
value: 'album',
|
||||
label: i18n('artist.tracks.sort.album'),
|
||||
},
|
||||
{
|
||||
value: 'date',
|
||||
label: i18n('artist.tracks.sort.date'),
|
||||
},
|
||||
];
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user