~cytrogen/masto-fe

3ed2bf92d06a5ebaf3ad92a55d5ae3c0c2640686 — Claire 2 years ago cc4560d
Fix case-insensitive comparison of hashtags to do case-folding (#26525)

1 files changed, 3 insertions(+), 3 deletions(-)

M app/javascript/mastodon/components/hashtag_bar.jsx
M app/javascript/mastodon/components/hashtag_bar.jsx => app/javascript/mastodon/components/hashtag_bar.jsx +3 -3
@@ 15,11 15,11 @@ const VISIBLE_HASHTAGS = 7;
export const HashtagBar = ({ hashtags, text }) => {
  const renderedHashtags = useMemo(() => {
    const body = domParser.parseFromString(text, 'text/html').documentElement;
    return [].filter.call(body.querySelectorAll('a[href]'), link => link.textContent[0] === '#' || (link.previousSibling?.textContent?.[link.previousSibling.textContent.length - 1] === '#')).map(node => node.textContent.toLowerCase());
    return [].filter.call(body.querySelectorAll('a[href]'), link => link.textContent[0] === '#' || (link.previousSibling?.textContent?.[link.previousSibling.textContent.length - 1] === '#')).map(node => node.textContent);
  }, [text]);

  const invisibleHashtags = useMemo(() => (
    hashtags.filter(hashtag => !renderedHashtags.some(textContent => textContent === `#${hashtag.get('name').toLowerCase()}` || textContent === hashtag.get('name').toLowerCase()))
    hashtags.filter(hashtag => !renderedHashtags.some(textContent => textContent.localeCompare(`#${hashtag.get('name')}`, undefined, { sensitivity: 'accent' }) === 0 || textContent.localeCompare(hashtag.get('name'), undefined, { sensitivity: 'accent' }) === 0))
  ), [hashtags, renderedHashtags]);

  const [expanded, setExpanded] = useState(false);


@@ 47,4 47,4 @@ export const HashtagBar = ({ hashtags, text }) => {
HashtagBar.propTypes = {
  hashtags: ImmutablePropTypes.list,
  text: PropTypes.string,
};
\ No newline at end of file
};