diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-02-17 01:34:37 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-02-17 01:34:37 +0100 |
commit | 0cbf3a146f5ac22a2187d8daa271e20b4e2d9b13 (patch) | |
tree | dd704c07acf5d5767776fc3636bd814ffcf6a2dd /app | |
parent | 8132cf8153e45aa75333c5bfd636141e1792bd50 (diff) |
Speed up/optimize loading of statuses, context and cards by not re-fetching what is already loaded
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/components/actions/cards.jsx | 4 | ||||
-rw-r--r-- | app/assets/javascripts/components/actions/statuses.jsx | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/app/assets/javascripts/components/actions/cards.jsx b/app/assets/javascripts/components/actions/cards.jsx index 503c2bfeb..cc7baf376 100644 --- a/app/assets/javascripts/components/actions/cards.jsx +++ b/app/assets/javascripts/components/actions/cards.jsx @@ -6,6 +6,10 @@ export const STATUS_CARD_FETCH_FAIL = 'STATUS_CARD_FETCH_FAIL'; export function fetchStatusCard(id) { return (dispatch, getState) => { + if (getState().getIn(['cards', id], null) !== null) { + return; + } + dispatch(fetchStatusCardRequest(id)); api(getState).get(`/api/v1/statuses/${id}/card`).then(response => { diff --git a/app/assets/javascripts/components/actions/statuses.jsx b/app/assets/javascripts/components/actions/statuses.jsx index 9ac215727..ee662fe79 100644 --- a/app/assets/javascripts/components/actions/statuses.jsx +++ b/app/assets/javascripts/components/actions/statuses.jsx @@ -27,12 +27,17 @@ export function fetchStatus(id) { return (dispatch, getState) => { const skipLoading = getState().getIn(['statuses', id], null) !== null; + dispatch(fetchContext(id)); + dispatch(fetchStatusCard(id)); + + if (skipLoading) { + return; + } + dispatch(fetchStatusRequest(id, skipLoading)); api(getState).get(`/api/v1/statuses/${id}`).then(response => { dispatch(fetchStatusSuccess(response.data, skipLoading)); - dispatch(fetchContext(id)); - dispatch(fetchStatusCard(id)); }).catch(error => { dispatch(fetchStatusFail(id, error, skipLoading)); }); |