mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-07 05:22:14 -07:00
Sort tags by label
Co-authored-by: Mark McDowall <markus.mcd5@gmail.com> (cherry picked from commit f32a3cd41c17bb9cb829ac24732cfeec6a18d569) Fixes #3678
This commit is contained in:
parent
a0c095e853
commit
1ba1dbea09
2 changed files with 11 additions and 18 deletions
|
@ -1,4 +1,3 @@
|
||||||
import _ from 'lodash';
|
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { createSelector } from 'reselect';
|
import { createSelector } from 'reselect';
|
||||||
import createArtistSelector from 'Store/Selectors/createArtistSelector';
|
import createArtistSelector from 'Store/Selectors/createArtistSelector';
|
||||||
|
@ -10,15 +9,11 @@ function createMapStateToProps() {
|
||||||
createArtistSelector(),
|
createArtistSelector(),
|
||||||
createTagsSelector(),
|
createTagsSelector(),
|
||||||
(artist, tagList) => {
|
(artist, tagList) => {
|
||||||
const tags = _.reduce(artist.tags, (acc, tag) => {
|
const tags = artist.tags
|
||||||
const matchingTag = _.find(tagList, { id: tag });
|
.map((tagId) => tagList.find((tag) => tag.id === tagId))
|
||||||
|
.filter((tag) => !!tag)
|
||||||
if (matchingTag) {
|
.map((tag) => tag.label)
|
||||||
acc.push(matchingTag.label);
|
.sort((a, b) => a.localeCompare(b));
|
||||||
}
|
|
||||||
|
|
||||||
return acc;
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
tags
|
tags
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
import _ from 'lodash';
|
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { kinds } from 'Helpers/Props';
|
import { kinds } from 'Helpers/Props';
|
||||||
|
@ -6,16 +5,15 @@ import Label from './Label';
|
||||||
import styles from './TagList.css';
|
import styles from './TagList.css';
|
||||||
|
|
||||||
function TagList({ tags, tagList }) {
|
function TagList({ tags, tagList }) {
|
||||||
|
const sortedTags = tags
|
||||||
|
.map((tagId) => tagList.find((tag) => tag.id === tagId))
|
||||||
|
.filter((tag) => !!tag)
|
||||||
|
.sort((a, b) => a.label.localeCompare(b.label));
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={styles.tags}>
|
<div className={styles.tags}>
|
||||||
{
|
{
|
||||||
tags.map((t) => {
|
sortedTags.map((tag) => {
|
||||||
const tag = _.find(tagList, { id: t });
|
|
||||||
|
|
||||||
if (!tag) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Label
|
<Label
|
||||||
key={tag.id}
|
key={tag.id}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue