From 44f236e8892796910027824f73a5c83ce36b5fbd Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 13 Nov 2016 20:52:11 +0100 Subject: [PATCH] Fix infinite scrolling mistake --- .../components/actions/accounts.jsx | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/app/assets/javascripts/components/actions/accounts.jsx b/app/assets/javascripts/components/actions/accounts.jsx index c84d43221..b997c4472 100644 --- a/app/assets/javascripts/components/actions/accounts.jsx +++ b/app/assets/javascripts/components/actions/accounts.jsx @@ -312,9 +312,9 @@ export function fetchFollowers(id) { dispatch(fetchFollowersRequest(id)); api(getState).get(`/api/v1/accounts/${id}/followers`).then(response => { - const prev = getLinks(response).refs.find(link => link.rel === 'prev').uri; + const next = getLinks(response).refs.find(link => link.rel === 'next'); - dispatch(fetchFollowersSuccess(id, response.data, prev)); + dispatch(fetchFollowersSuccess(id, response.data, next ? next.uri : null)); dispatch(fetchRelationships(response.data.map(item => item.id))); }).catch(error => { dispatch(fetchFollowersFail(id, error)); @@ -329,12 +329,12 @@ export function fetchFollowersRequest(id) { }; }; -export function fetchFollowersSuccess(id, accounts, prev) { +export function fetchFollowersSuccess(id, accounts, next) { return { type: FOLLOWERS_FETCH_SUCCESS, id, accounts, - prev + next }; }; @@ -348,14 +348,18 @@ export function fetchFollowersFail(id, error) { export function expandFollowers(id) { return (dispatch, getState) => { - const url = getState().getIn(['user_lists', 'followers', id, 'prev']); + const url = getState().getIn(['user_lists', 'followers', id, 'next']); + + if (url === null) { + return; + } dispatch(expandFollowersRequest(id)); api(getState).get(url).then(response => { - const prev = getLinks(response).refs.find(link => link.rel === 'prev').uri; + const next = getLinks(response).refs.find(link => link.rel === 'next'); - dispatch(expandFollowersSuccess(id, response.data, prev)); + dispatch(expandFollowersSuccess(id, response.data, next ? next.uri : null)); dispatch(fetchRelationships(response.data.map(item => item.id))); }).catch(error => { dispatch(expandFollowersFail(id, error)); @@ -370,12 +374,12 @@ export function expandFollowersRequest(id) { }; }; -export function expandFollowersSuccess(id, accounts, prev) { +export function expandFollowersSuccess(id, accounts, next) { return { type: FOLLOWERS_EXPAND_SUCCESS, id, accounts, - prev + next }; }; @@ -392,7 +396,9 @@ export function fetchFollowing(id) { dispatch(fetchFollowingRequest(id)); api(getState).get(`/api/v1/accounts/${id}/following`).then(response => { - dispatch(fetchFollowingSuccess(id, response.data)); + const next = getLinks(response).refs.find(link => link.rel === 'next'); + + dispatch(fetchFollowingSuccess(id, response.data, next ? next.uri : null)); dispatch(fetchRelationships(response.data.map(item => item.id))); }).catch(error => { dispatch(fetchFollowingFail(id, error)); @@ -425,14 +431,18 @@ export function fetchFollowingFail(id, error) { export function expandFollowing(id) { return (dispatch, getState) => { - const url = getState().getIn(['user_lists', 'following', id, 'prev']); + const url = getState().getIn(['user_lists', 'following', id, 'next']); + + if (url === null) { + return; + } dispatch(expandFollowingRequest(id)); api(getState).get(url).then(response => { - const prev = getLinks(response).refs.find(link => link.rel === 'prev').uri; + const next = getLinks(response).refs.find(link => link.rel === 'next'); - dispatch(expandFollowingSuccess(id, response.data, prev)); + dispatch(expandFollowingSuccess(id, response.data, next ? next.uri : null)); dispatch(fetchRelationships(response.data.map(item => item.id))); }).catch(error => { dispatch(expandFollowingFail(id, error)); @@ -447,12 +457,12 @@ export function expandFollowingRequest(id) { }; }; -export function expandFollowingSuccess(id, accounts, prev) { +export function expandFollowingSuccess(id, accounts, next) { return { type: FOLLOWING_EXPAND_SUCCESS, id, accounts, - prev + next }; };