diff --git a/public/script.js b/public/script.js index 5205a27cd..f803ac4f8 100644 --- a/public/script.js +++ b/public/script.js @@ -1637,7 +1637,7 @@ export function getEntitiesList({ doFilter = false, doSort = true } = {}) { subEntities = entitiesFilter.applyFilters(subEntities, { clearScoreCache: false, tempOverrides: { [FILTER_TYPES.FOLDER]: FILTER_STATES.UNDEFINED }, clearFuzzySearchCaches: false }); } if (doSort) { - sortEntitiesList(subEntities); + sortEntitiesList(subEntities, false); } entity.entities = subEntities; entity.hidden = subCount - subEntities.length; @@ -1665,7 +1665,7 @@ export function getEntitiesList({ doFilter = false, doSort = true } = {}) { // Sort before returning if requested if (doSort) { - sortEntitiesList(entities); + sortEntitiesList(entities, false); } entitiesFilter.clearFuzzySearchCaches(); return entities; diff --git a/public/scripts/group-chats.js b/public/scripts/group-chats.js index 0195b1d8d..0e106c3ea 100644 --- a/public/scripts/group-chats.js +++ b/public/scripts/group-chats.js @@ -1267,14 +1267,15 @@ function getGroupCharacters({ doFilter, onlyMembers } = {}) { .filter((x) => isGroupMember(thisGroup, x.avatar) == onlyMembers) .map((x, index) => ({ item: x, id: index, type: 'character' })); + if (doFilter) { + candidates = groupCandidatesFilter.applyFilters(candidates); + } + if (onlyMembers) { candidates.sort(sortMembersFn); } else { - sortEntitiesList(candidates); - } - - if (doFilter) { - candidates = groupCandidatesFilter.applyFilters(candidates); + const useFilterOrder = doFilter && !!$('#rm_group_filter').val(); + sortEntitiesList(candidates, useFilterOrder); } return candidates; diff --git a/public/scripts/power-user.js b/public/scripts/power-user.js index 504d53b13..e27a90fbc 100644 --- a/public/scripts/power-user.js +++ b/public/scripts/power-user.js @@ -60,7 +60,6 @@ export { loadMovingUIState, collapseNewlines, playMessageSound, - sortEntitiesList, fixMarkdown, power_user, send_on_enter_options, @@ -2080,8 +2079,9 @@ const compareFunc = (first, second) => { /** * Sorts an array of entities based on the current sort settings * @param {any[]} entities An array of objects with an `item` property + * @param {boolean} forceSearch Whether to force search sorting */ -function sortEntitiesList(entities) { +export function sortEntitiesList(entities, forceSearch) { if (power_user.sort_field == undefined || entities.length === 0) { return; } @@ -2091,7 +2091,7 @@ function sortEntitiesList(entities) { return; } - const isSearch = $('#character_sort_order option[data-field="search"]').is(':selected'); + const isSearch = forceSearch || $('#character_sort_order option[data-field="search"]').is(':selected'); entities.sort((a, b) => { // Sort tags/folders will always be at the top