Preserve hashtag casing in threaded mode

Inspired by f9b23a5d62
master
Thibaut Girka 6 years ago committed by ThibG
parent 14563f5167
commit e3246cd13b
  1. 6
      app/javascript/flavours/glitch/reducers/compose.js
  2. 8
      app/javascript/flavours/glitch/util/hashtag.js

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

@ -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;
}
);
}
Loading…
Cancel
Save