diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2016-10-18 23:06:28 +0200 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2016-10-18 23:06:28 +0200 |
commit | 8698cd3281ac1d699c723a151b14f1e2f2e8b07e (patch) | |
tree | 00365bb754c9322615538fdef2d9c8adbde3bc11 /app/assets/javascripts/components/actions/timelines.jsx | |
parent | 1d2175f73c8e6e92768ae51f66cb94d64d2265a7 (diff) |
Remember scroll position when navigating back, do not needlessly reload
entire timelines (only fetch since last known ID). Side effect: account timelines no longer update in real-time
Diffstat (limited to 'app/assets/javascripts/components/actions/timelines.jsx')
-rw-r--r-- | app/assets/javascripts/components/actions/timelines.jsx | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/app/assets/javascripts/components/actions/timelines.jsx b/app/assets/javascripts/components/actions/timelines.jsx index f92f758f5..5258d7103 100644 --- a/app/assets/javascripts/components/actions/timelines.jsx +++ b/app/assets/javascripts/components/actions/timelines.jsx @@ -45,7 +45,16 @@ export function refreshTimeline(timeline) { return function (dispatch, getState) { dispatch(refreshTimelineRequest(timeline)); - api(getState).get(`/api/v1/statuses/${timeline}`).then(function (response) { + const ids = getState().getIn(['timelines', timeline]); + const newestId = ids.size > 0 ? ids.first() : null; + + let params = ''; + + if (newestId !== null) { + params = `?since_id=${newestId}`; + } + + api(getState).get(`/api/v1/statuses/${timeline}${params}`).then(function (response) { dispatch(refreshTimelineSuccess(timeline, response.data)); }).catch(function (error) { dispatch(refreshTimelineFail(timeline, error)); |