Fixed: Improve Selection of Executing Commands in Artist list

pull/6/head
Qstick 5 years ago
parent 789ce8a58f
commit 63f9338d2f

@ -4,9 +4,8 @@ import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { isCommandExecuting } from 'Utilities/Command';
import createArtistSelector from 'Store/Selectors/createArtistSelector';
import createCommandsSelector from 'Store/Selectors/createCommandsSelector';
import createExecutingCommandsSelector from 'Store/Selectors/createCommandsSelector';
import createQualityProfileSelector from 'Store/Selectors/createQualityProfileSelector';
import createLanguageProfileSelector from 'Store/Selectors/createLanguageProfileSelector';
import createMetadataProfileSelector from 'Store/Selectors/createMetadataProfileSelector';
@ -40,28 +39,26 @@ function createMapStateToProps() {
createLanguageProfileSelector(),
createMetadataProfileSelector(),
selectShowSearchAction(),
createCommandsSelector(),
createExecutingCommandsSelector(),
(
artist,
qualityProfile,
languageProfile,
metadataProfile,
showSearchAction,
commands
executingCommands
) => {
const isRefreshingArtist = commands.some((command) => {
const isRefreshingArtist = executingCommands.some((command) => {
return (
command.name === commandNames.REFRESH_ARTIST &&
command.body.artistId === artist.id &&
isCommandExecuting(command)
command.body.artistId === artist.id
);
});
const isSearchingArtist = commands.some((command) => {
const isSearchingArtist = executingCommands.some((command) => {
return (
command.name === commandNames.ARTIST_SEARCH &&
command.body.artistId === artist.id &&
isCommandExecuting(command)
command.body.artistId === artist.id
);
});

@ -1,4 +1,3 @@
import _ from 'lodash';
import { createSelector } from 'reselect';
import createAllArtistSelector from './createAllArtistSelector';
@ -6,8 +5,8 @@ function createArtistSelector() {
return createSelector(
(state, { artistId }) => artistId,
createAllArtistSelector(),
(artistId, artist) => {
return _.find(artist, { id: artistId });
(artistId, allArtists) => {
return allArtists.find((artist) => artist.id === artistId );
}
);
}

@ -0,0 +1,13 @@
import { createSelector } from 'reselect';
import { isCommandExecuting } from 'Utilities/Command';
function createExecutingCommandsSelector() {
return createSelector(
(state) => state.commands.items,
(commands) => {
return commands.filter((command) => isCommandExecuting(command));
}
);
}
export default createExecutingCommandsSelector;
Loading…
Cancel
Save