From bdf3ecb9ffc442c940e9f6841073552e17316c01 Mon Sep 17 00:00:00 2001 From: James Barnsley Date: Sun, 5 Sep 2021 12:38:06 +1200 Subject: [PATCH] Recursive loading of categories, fixes #764 --- src/js/services/spotify/actions.js | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/js/services/spotify/actions.js b/src/js/services/spotify/actions.js index c7c8f06f..37207a88 100755 --- a/src/js/services/spotify/actions.js +++ b/src/js/services/spotify/actions.js @@ -427,10 +427,27 @@ export function getCategories() { request({ dispatch, getState, endpoint }) .then( (response) => { - dispatch({ - type: 'SPOTIFY_CATEGORIES_LOADED', - categories: formatCategories(response.categories.items), + let results = formatCategories(response.categories.items); + + const fetchResults = (resultsEndpoint) => request({ + dispatch, + getState, + endpoint: resultsEndpoint, + }).then((response) => { + results = [ + ...results, + ...formatCategories(response.categories.items), + ]; + if (response.categories.next) { + fetchResults(response.categories.next); + } else { + dispatch({ + type: 'SPOTIFY_CATEGORIES_LOADED', + categories: results, + }); + } }); + fetchResults(endpoint); }, (error) => { dispatch(coreActions.handleException(