in src/views/issues/issues-actions.ts [267:318]
placeholder: i18n('Filter projects, saved searches, and tags'),
dataSource: async (query: string = ''): Promise<ContextDataSource[]> => {
const isHelpdeskMode = dispatch(isHelpDeskMode());
const [error, userFolders] = await until(
isHelpdeskMode
? api.savedQueries.getSavedQueries()
: api.user.getUserFolders()
) as [CustomError | null, Folder[]];
if (error) {
log.warn('Failed to load user folders for the context');
return [];
}
const filterHelpdeskFolders = (it: Folder) => isHelpdeskMode ? it.pinnedInHelpdesk : true;
const pinnedFolders: Folder[] = userFolders.filter((it: Folder) => it.pinned).filter(filterHelpdeskFolders);
const unpinnedFolders: Folder[] = userFolders.filter((it: Folder) => !it.pinned).filter(filterHelpdeskFolders);
const pinnedGrouped: GroupedFolders = getGroupedFolders(pinnedFolders);
const unpinnedGrouped: GroupedFolders = getGroupedFolders(unpinnedFolders);
let defaultContext: Folder[];
if (!isHelpdeskMode) {
defaultContext = currentSearchContext.id ? [EVERYTHING_SEARCH_CONTEXT] : [];
} else {
defaultContext = dispatch(isDefaultHelpdeskSearchContext(currentSearchContext.id))
? []
: [dispatch(createDefaultHelpdeskSearchContext())];
}
return [
{
title: i18n('Projects'),
data: [
...defaultContext,
...sortFolders(pinnedGrouped.projects, query),
...sortFolders(unpinnedGrouped.projects, query),
],
},
{
title: i18n('Tags'),
data: [
...sortFolders(pinnedGrouped.tags, query),
...sortFolders(unpinnedGrouped.tags, query),
],
},
{
title: i18n('Saved Searches'),
data: [
...sortFolders(pinnedGrouped.searches, query),
...sortFolders(unpinnedGrouped.searches, query),
],
},
];
},