From 4ecfa394e6216bd449acbe45e2bd472019749e71 Mon Sep 17 00:00:00 2001 From: Sny Date: Thu, 10 Aug 2023 09:35:47 +0530 Subject: [PATCH] OpenConceptLab/ocl_issues#1648 | sorting suggestions by weight from repo summary | others sorted alphabatically --- src/common/utils.js | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/common/utils.js b/src/common/utils.js index dde5bf9d..61a136e3 100644 --- a/src/common/utils.js +++ b/src/common/utils.js @@ -905,6 +905,7 @@ export const sortValuesBySourceSummary = (data, summary, summaryField, isLocale) return d }) const summaryValues = get(summary, summaryField) + let suggested = [] if(summaryValues) { const usedValues = map(summaryValues, value => value[0]) usedValues.forEach(used => { @@ -913,14 +914,27 @@ export const sortValuesBySourceSummary = (data, summary, summaryField, isLocale) const _used = used?.toLowerCase()?.replace('-', '')?.replace('_', '')?.replace(' ', '') return _used === id }) - if(_used) - _used.resultType = 'Suggested' + if(_used) { + suggested.push({..._used, resultType: 'Suggested'}) + _data = reject(_data, {id: _used?.id}) + } }) } - let values = orderBy(_data, ['resultType', 'name'], ['desc', 'asc']) + + let values = [...suggested, ...orderBy(_data, 'name', 'asc')] if(isLocale) { - values = uniqBy([{...find(values, {id: summary.default_locale}), resultType: 'Suggested'}, ...orderBy(filter(values, val => (summary.supported_locales || []).includes(val.id)).map(val => ({...val, resultType: 'Suggested'})), ['name'], ['asc']), ...values], 'id') + values = uniqBy( + [ + {...find(values, {id: summary.default_locale}), resultType: 'Suggested'}, + ...filter( + values, + val => (summary.supported_locales || []).includes(val.id) + ).map(val => ({...val, resultType: 'Suggested'})), + ...values + ], + 'id' + ) } return values