Sort tags by label

(cherry picked from commit bb1ebda753157a96154095e0c1e32703f2a68d1a)

Co-authored-by: Mark McDowall <markus.mcd5@gmail.com>
This commit is contained in:
Bogdan 2023-02-28 02:47:01 +02:00 committed by Mark McDowall
parent 14411f1f15
commit f32a3cd41c
2 changed files with 11 additions and 18 deletions

View File

@ -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}

View File

@ -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 createSeriesSelector from 'Store/Selectors/createSeriesSelector'; import createSeriesSelector from 'Store/Selectors/createSeriesSelector';
@ -10,15 +9,11 @@ function createMapStateToProps() {
createSeriesSelector(), createSeriesSelector(),
createTagsSelector(), createTagsSelector(),
(series, tagList) => { (series, tagList) => {
const tags = _.reduce(series.tags, (acc, tag) => { const tags = series.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