~cytrogen/masto-fe

0baaee495f83e1b4b5d42196b78aa220256b75ee — Thibaut Girka 6 years ago fce885f
Fix report dialog crashing when a toot gets deleted

Fixes #1155
1 files changed, 13 insertions(+), 0 deletions(-)

M app/javascript/flavours/glitch/reducers/reports.js
M app/javascript/flavours/glitch/reducers/reports.js => app/javascript/flavours/glitch/reducers/reports.js +13 -0
@@ 8,6 8,9 @@ import {
  REPORT_COMMENT_CHANGE,
  REPORT_FORWARD_CHANGE,
} from 'flavours/glitch/actions/reports';
import {
  TIMELINE_DELETE,
} from 'flavours/glitch/actions/timelines';
import { Map as ImmutableMap, Set as ImmutableSet } from 'immutable';

const initialState = ImmutableMap({


@@ 20,6 23,14 @@ const initialState = ImmutableMap({
  }),
});

const deleteStatus = (state, id, references) => {
  references.forEach(ref => {
    state = deleteStatus(state, ref[0], []);
  });

  return state.updateIn(['new', 'status_ids'], ImmutableSet(), set => set.remove(id));
};

export default function reports(state = initialState, action) {
  switch(action.type) {
  case REPORT_INIT:


@@ 58,6 69,8 @@ export default function reports(state = initialState, action) {
      map.setIn(['new', 'comment'], '');
      map.setIn(['new', 'isSubmitting'], false);
    });
  case TIMELINE_DELETE:
    return deleteStatus(state, action.id, action.references);
  default:
    return state;
  }