From b498dd9867f8c124edfe12b43d2d100f83cb4fcc Mon Sep 17 00:00:00 2001 From: Suzanne Aitchison Date: Thu, 17 Mar 2022 10:49:35 +0000 Subject: [PATCH] Revert "Refactor editor tags selector to fetch all tag info in one network call (#16841)" (#16900) This reverts commit 7c1993604c53e539713c00e45762395a769060db. --- .../article-form/components/TagsField.jsx | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/app/javascript/article-form/components/TagsField.jsx b/app/javascript/article-form/components/TagsField.jsx index 82a880301..9de038775 100644 --- a/app/javascript/article-form/components/TagsField.jsx +++ b/app/javascript/article-form/components/TagsField.jsx @@ -29,19 +29,20 @@ export const TagsField = ({ onInput, defaultValue, switchHelpContext }) => { // Fetching further tag data allows us to display a richer UI // This fetch only happens once on first component load if (defaultValue && defaultValue !== '' && !defaultsLoaded) { - const tagNamesQueryString = defaultValue - .split(', ') - .reduce((queryString, nextTagName) => { - if (nextTagName) { - return queryString - ? `${queryString}&tag_names[]=${nextTagName}` - : `tag_names[]=${nextTagName}`; - } - }, ''); + const tagNames = defaultValue.split(', '); - fetch(`/tags/bulk?${tagNamesQueryString}`) - .then((res) => res.json()) - .then((data) => setDefaultSelections(data)); + const tagRequests = tagNames.map((tagName) => + fetchSearch('tags', { name: tagName }).then(({ result = [] }) => { + const [potentialMatch = {}] = result; + return potentialMatch.name === tagName + ? potentialMatch + : { name: tagName }; + }), + ); + + Promise.all(tagRequests).then((data) => { + setDefaultSelections(data); + }); } setDefaultsLoaded(true); }, [defaultValue, defaultsLoaded]);