Preserve hashtag casing in threaded mode

Inspired by f9b23a5d62
This commit is contained in:
Thibaut Girka 2018-08-28 12:40:19 +02:00 committed by ThibG
parent 14563f5167
commit e3246cd13b
2 changed files with 12 additions and 2 deletions

View File

@ -39,6 +39,7 @@ import { privacyPreference } from 'flavours/glitch/util/privacy_preference';
import { me } from 'flavours/glitch/util/initial_state';
import { overwrite } from 'flavours/glitch/util/js_helpers';
import { unescapeHTML } from 'flavours/glitch/util/html';
import { recoverHashtags } from 'flavours/glitch/util/hashtag';
const totalElefriends = 3;
@ -114,8 +115,9 @@ function apiStatusToTextMentions (state, status) {
}
function apiStatusToTextHashtags (state, status) {
return ImmutableOrderedSet([]).union(status.tags.map(
({ name }) => `#${name} `
const text = unescapeHTML(status.content);
return ImmutableOrderedSet([]).union(recoverHashtags(status.tags, text).map(
(name) => `#${name} `
)).join('');
}

View File

@ -0,0 +1,8 @@
export function recoverHashtags (recognizedTags, text) {
return recognizedTags.map(tag => {
const re = new RegExp(`(?:^|[^\/\)\w])#(${tag.name})`, 'i');
const matched_hashtag = text.match(re);
return matched_hashtag ? matched_hashtag[1] : tag;
}
);
}