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 api from '../api'
import { updateTimeline } from './timelines';
export const COMPOSE_CHANGE = 'COMPOSE_CHANGE'; export const COMPOSE_CHANGE = 'COMPOSE_CHANGE';
export const COMPOSE_SUBMIT_REQUEST = 'COMPOSE_SUBMIT_REQUEST'; export const COMPOSE_SUBMIT_REQUEST = 'COMPOSE_SUBMIT_REQUEST';
export const COMPOSE_SUBMIT_SUCCESS = 'COMPOSE_SUBMIT_SUCCESS'; export const COMPOSE_SUBMIT_SUCCESS = 'COMPOSE_SUBMIT_SUCCESS';
@ -66,9 +68,13 @@ export function submitComposeRequest() {
}; };
export function submitComposeSuccess(status) { export function submitComposeSuccess(status) {
return { return (dispatch, getState) => {
dispatch({
type: COMPOSE_SUBMIT_SUCCESS, type: COMPOSE_SUBMIT_SUCCESS,
status: status status: status
});
dispatch(updateTimeline('home', status));
}; };
}; };

View File

@ -95,6 +95,10 @@ const updateTimeline = (state, timeline, status, references) => {
state = normalizeStatus(state, status); state = normalizeStatus(state, status);
state = state.update(timeline, list => { state = state.update(timeline, list => {
if (list.includes(status.get('id'))) {
return list;
}
const reblogOfId = status.getIn(['reblog', 'id'], null); const reblogOfId = status.getIn(['reblog', 'id'], null);
if (reblogOfId !== null) { if (reblogOfId !== null) {