diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2018-08-23 21:21:15 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-23 21:21:15 +0200 |
commit | f9b23a5d6247445ea5b70b431c934a4bb99213bc (patch) | |
tree | 516bde7a193a09d7f49c03730dfe4020be21f9f5 | |
parent | 248df68c36a2f1ffd9c214afe7d1b0c62b4a5f27 (diff) |
Preserve hashtag casing in web UI hashtag history (#8394)
Fix #8241
-rw-r--r-- | app/javascript/mastodon/actions/compose.js | 8 | ||||
-rw-r--r-- | app/javascript/mastodon/reducers/compose.js | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/app/javascript/mastodon/actions/compose.js b/app/javascript/mastodon/actions/compose.js index fe3e831d5..6d975cd1e 100644 --- a/app/javascript/mastodon/actions/compose.js +++ b/app/javascript/mastodon/actions/compose.js @@ -130,7 +130,7 @@ export function submitCompose() { 'Idempotency-Key': getState().getIn(['compose', 'idempotencyKey']), }, }).then(function (response) { - dispatch(insertIntoTagHistory(response.data.tags)); + dispatch(insertIntoTagHistory(response.data.tags, status)); dispatch(submitComposeSuccess({ ...response.data })); // To make the app more responsive, immediately get the status into the columns @@ -390,13 +390,13 @@ export function hydrateCompose() { }; } -function insertIntoTagHistory(tags) { +function insertIntoTagHistory(recognizedTags, text) { return (dispatch, getState) => { const state = getState(); const oldHistory = state.getIn(['compose', 'tagHistory']); const me = state.getIn(['meta', 'me']); - const names = tags.map(({ name }) => name); - const intersectedOldHistory = oldHistory.filter(name => !names.includes(name)); + const names = recognizedTags.map(tag => text.match(new RegExp(`#${tag.name}`, 'i'))[0].slice(1)); + const intersectedOldHistory = oldHistory.filter(name => names.findIndex(newName => newName.toLowerCase() === name.toLowerCase()) === -1); names.push(...intersectedOldHistory.toJS()); diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js index 552f659c9..67d55f66f 100644 --- a/app/javascript/mastodon/reducers/compose.js +++ b/app/javascript/mastodon/reducers/compose.js @@ -131,7 +131,7 @@ const updateSuggestionTags = (state, token) => { return state.merge({ suggestions: state.get('tagHistory') - .filter(tag => tag.startsWith(prefix)) + .filter(tag => tag.toLowerCase().startsWith(prefix.toLowerCase())) .slice(0, 4) .map(tag => '#' + tag), suggestion_token: token, |