[sorting] Fix album sorting
All checks were successful
CI / test (push) Successful in 1m18s
CI / deploy (push) Successful in 1m53s

This commit is contained in:
2026-06-29 10:01:15 -04:00
parent 57df86bc6a
commit aca309e39d
2 changed files with 10 additions and 5 deletions

View File

@ -160,18 +160,19 @@ const sortItems = (array, property, reverse = false) => {
case 'user':
return item.user ? item.user.id : undefined;
case 'date':
return item.album?.date || item.date || '';
return item.release_date || '';
default:
return item[property];
}
};
// Special handling for date sort: sort by date first, then track number
// Special handling for date sort: sort by release date first, then track number
if (property === 'date') {
return orderBy(array, [
item => item.album?.date || item.date || '',
item => item.release_date || '',
item => item.album?.name || '',
item => item.track_number || 0,
], [reverse ? 'desc' : 'asc', 'asc']);
], [reverse ? 'desc' : 'asc', 'asc', 'asc']);
}
return orderBy(array, sorter, (reverse ? 'desc' : 'asc'));

View File

@ -152,8 +152,12 @@ const BrowseDirectory = () => {
subdirectories = sortItems(subdirectories, sortField, sortReverse);
tracks = sortItems(tracks, sortField, sortReverse);
if (filter && filter !== '') {
const q = filter.toLowerCase();
subdirectories = applyFilter('name', filter, subdirectories);
tracks = applyFilter('name', filter, tracks);
tracks = tracks.filter((track) => {
const match = (val) => String(val).toLowerCase().includes(q);
return match(track.album?.name || '') || match(track.name || '') || match(track.artists?.[0]?.name || '');
});
}
const sort_options = [