commit: 98560b232acc9d16d3515133721266f170e31ae6
parent: 9b0941182f5277069b85ef1601832e28ebd1ba43
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Thu, 19 Jan 2017 11:06:06 +0100
Don't show loading bar when re-loading already loaded status. Don't even try to fetch ancestors from DB when in_reply_to_id is nil
Diffstat:
2 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/app/assets/javascripts/components/actions/statuses.jsx b/app/assets/javascripts/components/actions/statuses.jsx
@@ -14,39 +14,43 @@ export const CONTEXT_FETCH_REQUEST = 'CONTEXT_FETCH_REQUEST';
export const CONTEXT_FETCH_SUCCESS = 'CONTEXT_FETCH_SUCCESS';
export const CONTEXT_FETCH_FAIL = 'CONTEXT_FETCH_FAIL';
-export function fetchStatusRequest(id) {
+export function fetchStatusRequest(id, skipLoading) {
return {
type: STATUS_FETCH_REQUEST,
- id: id
+ id,
+ skipLoading
};
};
export function fetchStatus(id) {
return (dispatch, getState) => {
- dispatch(fetchStatusRequest(id));
+ const skipLoading = getState().getIn(['statuses', id], null) !== null;
+
+ dispatch(fetchStatusRequest(id, skipLoading));
api(getState).get(`/api/v1/statuses/${id}`).then(response => {
- dispatch(fetchStatusSuccess(response.data));
+ dispatch(fetchStatusSuccess(response.data, skipLoading));
dispatch(fetchContext(id));
}).catch(error => {
- dispatch(fetchStatusFail(id, error));
+ dispatch(fetchStatusFail(id, error, skipLoading));
});
};
};
-export function fetchStatusSuccess(status, context) {
+export function fetchStatusSuccess(status, skipLoading) {
return {
type: STATUS_FETCH_SUCCESS,
- status: status,
- context: context
+ status,
+ skipLoading
};
};
-export function fetchStatusFail(id, error) {
+export function fetchStatusFail(id, error, skipLoading) {
return {
type: STATUS_FETCH_FAIL,
- id: id,
- error: error
+ id,
+ error,
+ skipLoading
};
};
diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb
@@ -14,7 +14,7 @@ class Api::V1::StatusesController < ApiController
end
def context
- @context = OpenStruct.new(ancestors: @status.ancestors(current_account), descendants: @status.descendants(current_account))
+ @context = OpenStruct.new(ancestors: @status.in_reply_to_id.nil? ? [] : @status.ancestors(current_account), descendants: @status.descendants(current_account))
statuses = [@status] + @context[:ancestors] + @context[:descendants]
set_maps(statuses)