logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: aff22bfdb554207ae73b8946310f7328f645be70
parent: 4b357ecf98f373f5ed31c71ecc1a79d23572cd00
Author: Eugen Rochko <eugen@zeonfederated.com>
Date:   Thu,  3 Nov 2016 11:06:55 +0100

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

Diffstat:

Mapp/assets/javascripts/components/actions/compose.jsx12+++++++++---
Mapp/assets/javascripts/components/reducers/timelines.jsx4++++
2 files changed, 13 insertions(+), 3 deletions(-)

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