diff --git a/app/assets/javascripts/components/actions/compose.jsx b/app/assets/javascripts/components/actions/compose.jsx index b576c744469..228469df18b 100644 --- a/app/assets/javascripts/components/actions/compose.jsx +++ b/app/assets/javascripts/components/actions/compose.jsx @@ -1,5 +1,7 @@ import api from '../api' +import { updateTimeline } from './timelines'; + export const COMPOSE_CHANGE = 'COMPOSE_CHANGE'; export const COMPOSE_SUBMIT_REQUEST = 'COMPOSE_SUBMIT_REQUEST'; export const COMPOSE_SUBMIT_SUCCESS = 'COMPOSE_SUBMIT_SUCCESS'; @@ -66,9 +68,13 @@ export function submitComposeRequest() { }; export function submitComposeSuccess(status) { - return { - type: COMPOSE_SUBMIT_SUCCESS, - status: status + return (dispatch, getState) => { + dispatch({ + type: COMPOSE_SUBMIT_SUCCESS, + status: status + }); + + dispatch(updateTimeline('home', status)); }; }; diff --git a/app/assets/javascripts/components/reducers/timelines.jsx b/app/assets/javascripts/components/reducers/timelines.jsx index db13cad3130..c12d1b70ddc 100644 --- a/app/assets/javascripts/components/reducers/timelines.jsx +++ b/app/assets/javascripts/components/reducers/timelines.jsx @@ -95,6 +95,10 @@ const updateTimeline = (state, timeline, status, references) => { state = normalizeStatus(state, status); state = state.update(timeline, list => { + if (list.includes(status.get('id'))) { + return list; + } + const reblogOfId = status.getIn(['reblog', 'id'], null); if (reblogOfId !== null) {