From 0a2427f79b90f82100b3a4ebe95ceb488cbb5a1d Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 14 Feb 2017 23:59:46 +0100 Subject: [PATCH] Fix #634 - Only include innermost-level statuses in report UI Fix #635 - Include the initially-reported status in report UI even if it's not among the user's most recent statuses --- .../features/report/components/status_check_box.jsx | 4 ++++ app/assets/javascripts/components/features/report/index.jsx | 2 +- app/assets/javascripts/components/reducers/reports.jsx | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/components/features/report/components/status_check_box.jsx b/app/assets/javascripts/components/features/report/components/status_check_box.jsx index df4a31457..6d976582b 100644 --- a/app/assets/javascripts/components/features/report/components/status_check_box.jsx +++ b/app/assets/javascripts/components/features/report/components/status_check_box.jsx @@ -18,6 +18,10 @@ const StatusCheckBox = React.createClass({ const { status, checked, onToggle, disabled } = this.props; const content = { __html: emojify(status.get('content')) }; + if (status.get('reblog')) { + return null; + } + return (
{ isSubmitting: state.getIn(['reports', 'new', 'isSubmitting']), account: getAccount(state, accountId), comment: state.getIn(['reports', 'new', 'comment']), - statusIds: state.getIn(['timelines', 'accounts_timelines', accountId, 'items'], Immutable.List()) + statusIds: Immutable.OrderedSet(state.getIn(['timelines', 'accounts_timelines', accountId, 'items'])).union(state.getIn(['reports', 'new', 'status_ids'])) }; }; diff --git a/app/assets/javascripts/components/reducers/reports.jsx b/app/assets/javascripts/components/reducers/reports.jsx index 272aff3e5..e1cce1c5f 100644 --- a/app/assets/javascripts/components/reducers/reports.jsx +++ b/app/assets/javascripts/components/reducers/reports.jsx @@ -25,10 +25,10 @@ export default function reports(state = initialState, action) { map.setIn(['new', 'account_id'], action.account.get('id')); if (state.getIn(['new', 'account_id']) !== action.account.get('id')) { - map.setIn(['new', 'status_ids'], action.status ? Immutable.Set([action.status.get('id')]) : Immutable.Set()); + map.setIn(['new', 'status_ids'], action.status ? Immutable.Set([action.status.getIn(['reblog', 'id'], action.status.get('id'))]) : Immutable.Set()); map.setIn(['new', 'comment'], ''); } else { - map.updateIn(['new', 'status_ids'], Immutable.Set(), set => set.add(action.status.get('id'))); + map.updateIn(['new', 'status_ids'], Immutable.Set(), set => set.add(action.status.getIn(['reblog', 'id'], action.status.get('id')))); } }); case REPORT_STATUS_TOGGLE: