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
This commit is contained in:
parent
4b357ecf98
commit
aff22bfdb5
|
@ -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));
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
Reference in New Issue