Add own composed status to home without waiting for websocket event

This makes the UI appear less laggy. After all, the status *is* created
right there and then, it's the distribution to home timelines that can take
a while
rebase/4.0.0rc2
Eugen Rochko 2016-11-03 11:06:55 +01:00
parent 4b357ecf98
commit aff22bfdb5
2 changed files with 13 additions and 3 deletions

View File

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

View File

@ -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) {