Fix report dialog crashing when a toot gets deleted

Fixes #1155
lolsob-rspec
Thibaut Girka 2019-07-10 19:12:51 +02:00 committed by ThibG
parent 53b0221e7d
commit 8184a7407d
1 changed files with 13 additions and 0 deletions

View File

@ -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;
}