diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2018-03-11 09:52:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-11 09:52:59 +0100 |
commit | b6003afcdb1b89eb967a2b211e3b4e26aed9ac9d (patch) | |
tree | 68723a2a3423bfaaeeb801f17e86a10be6680c73 /app/javascript/mastodon/reducers/statuses.js | |
parent | f5ee2d469bb2ff398571694a95a16c8e819153c9 (diff) |
Add show more/less toggle for entire threads in web UI (#6733)
Fix #1258
Diffstat (limited to 'app/javascript/mastodon/reducers/statuses.js')
-rw-r--r-- | app/javascript/mastodon/reducers/statuses.js | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/app/javascript/mastodon/reducers/statuses.js b/app/javascript/mastodon/reducers/statuses.js index cc0d4dacd..5a47e7272 100644 --- a/app/javascript/mastodon/reducers/statuses.js +++ b/app/javascript/mastodon/reducers/statuses.js @@ -15,6 +15,8 @@ import { CONTEXT_FETCH_SUCCESS, STATUS_MUTE_SUCCESS, STATUS_UNMUTE_SUCCESS, + STATUS_REVEAL, + STATUS_HIDE, } from '../actions/statuses'; import { TIMELINE_REFRESH_SUCCESS, @@ -62,8 +64,9 @@ const normalizeStatus = (state, status) => { }, {}); normalStatus.search_index = domParser.parseFromString(searchContent, 'text/html').documentElement.textContent; - normalStatus.contentHtml = emojify(normalStatus.content, emojiMap); - normalStatus.spoilerHtml = emojify(escapeTextContentForBrowser(normalStatus.spoiler_text || ''), emojiMap); + normalStatus.contentHtml = emojify(normalStatus.content, emojiMap); + normalStatus.spoilerHtml = emojify(escapeTextContentForBrowser(normalStatus.spoiler_text || ''), emojiMap); + normalStatus.hidden = normalStatus.sensitive; return state.update(status.id, ImmutableMap(), map => map.mergeDeep(fromJS(normalStatus))); }; @@ -111,6 +114,14 @@ export default function statuses(state = initialState, action) { return state.setIn([action.id, 'muted'], true); case STATUS_UNMUTE_SUCCESS: return state.setIn([action.id, 'muted'], false); + case STATUS_REVEAL: + return state.withMutations(map => { + action.ids.forEach(id => map.setIn([id, 'hidden'], false)); + }); + case STATUS_HIDE: + return state.withMutations(map => { + action.ids.forEach(id => map.setIn([id, 'hidden'], true)); + }); case TIMELINE_REFRESH_SUCCESS: case TIMELINE_EXPAND_SUCCESS: case CONTEXT_FETCH_SUCCESS: |