Sort tags by label
(cherry picked from commit bb1ebda753157a96154095e0c1e32703f2a68d1a) Co-authored-by: Mark McDowall <markus.mcd5@gmail.com>
This commit is contained in:
parent
14411f1f15
commit
f32a3cd41c
|
@ -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}
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue