Merge pull request #8431 from igrowp/fix-search-sort-panel

fix: editor组件面板排序问题
This commit is contained in:
wutong 2023-10-19 12:43:51 +08:00 committed by GitHub
commit e92878229a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 21 deletions

View File

@ -201,21 +201,28 @@ export default class SearchPanel extends React.Component<
curSearchResult.push(item);
});
} else {
const searchMap = new Map<string, any>();
matchSorter(allResult, keywords, {
keys: ['name', 'description', 'scaffold.type', 'searchKeywords']
}).forEach(item => {
if (item[curTagKey]) {
const tags = Array.isArray(item[curTagKey])
? item[curTagKey].concat()
: item[curTagKey]
? [item[curTagKey]]
: ['其他'];
tags.forEach((tag: string) => {
curSearchResultByTag[tag] = curSearchResultByTag[tag] || [];
curSearchResultByTag[tag].push(item);
});
} else {
curSearchResult.push(item);
searchMap.set(item.id, item);
});
allResult.forEach(item => {
if (searchMap.has(item.id)) {
if (item[curTagKey]) {
const tags = Array.isArray(item[curTagKey])
? item[curTagKey].concat()
: item[curTagKey]
? [item[curTagKey]]
: ['其他'];
tags.forEach((tag: string) => {
curSearchResultByTag[tag] = curSearchResultByTag[tag] || [];
curSearchResultByTag[tag].push(item);
});
} else {
curSearchResult.push(item);
}
}
});
}

View File

@ -692,19 +692,26 @@ export const MainStore = types
[propName: string]: Array<SubRendererInfo>;
} = {};
const searchMap = new Map<string, any>();
matchSorter(subRenderers, keywords, {
keys: ['name', 'description', 'scaffold.type', 'searchKeywords']
}).forEach(item => {
const tags = Array.isArray(item.tags)
? item.tags.concat()
: item.tags
? [item.tags]
: ['其他'];
searchMap.set(item.id, item);
});
tags.forEach(tag => {
grouped[tag] = grouped[tag] || [];
grouped[tag].push(item);
});
subRenderers.forEach(item => {
if (searchMap.has(item.id)) {
const tags = Array.isArray(item.tags)
? item.tags.concat()
: item.tags
? [item.tags]
: ['其他'];
tags.forEach(tag => {
grouped[tag] = grouped[tag] || [];
grouped[tag].push(item);
});
}
});
return grouped;