diff --git a/frontend/src/Artist/Details/AlbumRow.js b/frontend/src/Artist/Details/AlbumRow.js index 8a9a7a6b9..893e5ca77 100644 --- a/frontend/src/Artist/Details/AlbumRow.js +++ b/frontend/src/Artist/Details/AlbumRow.js @@ -253,7 +253,7 @@ AlbumRow.propTypes = { id: PropTypes.number.isRequired, artistId: PropTypes.number.isRequired, monitored: PropTypes.bool.isRequired, - releaseDate: PropTypes.string.isRequired, + releaseDate: PropTypes.string, mediumCount: PropTypes.number.isRequired, duration: PropTypes.number.isRequired, title: PropTypes.string.isRequired, diff --git a/frontend/src/Artist/Details/ArtistDetailsSeasonConnector.js b/frontend/src/Artist/Details/ArtistDetailsSeasonConnector.js index 6eb98cd52..4cfce0bad 100644 --- a/frontend/src/Artist/Details/ArtistDetailsSeasonConnector.js +++ b/frontend/src/Artist/Details/ArtistDetailsSeasonConnector.js @@ -1,5 +1,3 @@ -/* eslint max-params: 0 */ -import _ from 'lodash'; import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { connect } from 'react-redux'; @@ -22,19 +20,10 @@ function createMapStateToProps() { createDimensionsSelector(), createUISettingsSelector(), (label, albums, artist, commands, dimensions, uiSettings) => { - - const albumsInGroup = _.filter(albums.items, { albumType: label }); - - let sortDir = 'asc'; - - if (albums.sortDirection === 'descending') { - sortDir = 'desc'; - } - - const sortedAlbums = _.orderBy(albumsInGroup, albums.sortKey, sortDir); + const albumsByType = albums.items.filter(({ albumType }) => albumType === label); return { - items: sortedAlbums, + items: albumsByType, columns: albums.columns, artistMonitored: artist.monitored, sortKey: albums.sortKey, diff --git a/frontend/src/Store/Actions/albumActions.js b/frontend/src/Store/Actions/albumActions.js index 4ac39a0aa..e990d2f28 100644 --- a/frontend/src/Store/Actions/albumActions.js +++ b/frontend/src/Store/Actions/albumActions.js @@ -31,9 +31,14 @@ export const defaultState = { saveError: null, sortKey: 'releaseDate', sortDirection: sortDirections.DESCENDING, + secondarySortKey: 'title', + secondarySortDirection: sortDirections.ASCENDING, items: [], pendingChanges: {}, sortPredicates: { + title: ({ title }) => { + return title.toLocaleLowerCase(); + }, rating: function(item) { return item.ratings.value; }, @@ -41,6 +46,9 @@ export const defaultState = { const { statistics = {} } = item; return statistics.sizeOnDisk || 0; + }, + releaseDate: function({ releaseDate }) { + return releaseDate || '0'; } },