From 4c1518a6f3b2b9b71833175bc7afc61cd6a95202 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 18 Sep 2023 11:20:09 +0200 Subject: [PATCH] Fix Web UI making duplicate search queries when scrolling (#26959) --- app/javascript/mastodon/reducers/search.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/reducers/search.js b/app/javascript/mastodon/reducers/search.js index 904e351857..72835eb917 100644 --- a/app/javascript/mastodon/reducers/search.js +++ b/app/javascript/mastodon/reducers/search.js @@ -14,6 +14,7 @@ import { SEARCH_SHOW, SEARCH_EXPAND_REQUEST, SEARCH_EXPAND_SUCCESS, + SEARCH_EXPAND_FAIL, SEARCH_HISTORY_UPDATE, } from '../actions/search'; @@ -54,6 +55,7 @@ export default function search(state = initialState, action) { map.set('type', action.searchType); }); case SEARCH_FETCH_FAIL: + case SEARCH_EXPAND_FAIL: return state.set('isLoading', false); case SEARCH_FETCH_SUCCESS: return state.withMutations(map => { @@ -68,10 +70,10 @@ export default function search(state = initialState, action) { map.set('isLoading', false); }); case SEARCH_EXPAND_REQUEST: - return state.set('type', action.searchType); + return state.set('type', action.searchType).set('isLoading', true); case SEARCH_EXPAND_SUCCESS: const results = action.searchType === 'hashtags' ? ImmutableOrderedSet(fromJS(action.results.hashtags)) : action.results[action.searchType].map(item => item.id); - return state.updateIn(['results', action.searchType], list => list.union(results)); + return state.updateIn(['results', action.searchType], list => list.union(results)).set('isLoading', false); case SEARCH_HISTORY_UPDATE: return state.set('recent', ImmutableOrderedSet(fromJS(action.recent))); default: