UNPKG

@atlaskit/global-search

Version:

A cross-product search component (batteries included)

42 lines (39 loc) 1.64 kB
import { ResultType, AnalyticsType, ContentType } from '../model/Result'; import { Scope } from './types'; export function removeHighlightTags(text) { return text.replace(/@@@hl@@@|@@@endhl@@@/g, ''); } function mapConfluenceItemToResultObject(item, experimentId) { return { resultId: item.content.id, // content always available for pages/blogs/attachments name: removeHighlightTags(item.title), href: `${item.baseUrl}${item.url}`, containerName: item.container.title, analyticsType: AnalyticsType.ResultConfluence, contentType: `confluence-${item.content.type}`, resultType: ResultType.ConfluenceObjectResult, containerId: item.content.space && item.content.space.id ? item.content.space.id : 'UNAVAILABLE', iconClass: item.iconCssClass, experimentId: experimentId, friendlyLastModified: item.friendlyLastModified }; } function mapConfluenceItemToResultSpace(spaceItem, experimentId) { return { resultId: `space-${spaceItem.space.key}`, // space is always defined for space results avatarUrl: `${spaceItem.baseUrl}${spaceItem.space.icon.path}`, name: spaceItem.container.title, href: `${spaceItem.baseUrl || ''}${spaceItem.container.displayUrl}`, analyticsType: AnalyticsType.ResultConfluence, resultType: ResultType.GenericContainerResult, contentType: ContentType.ConfluenceSpace, experimentId: experimentId, key: spaceItem.space.key }; } export function mapConfluenceItemToResult(scope, item) { const mapper = scope === Scope.ConfluenceSpace ? mapConfluenceItemToResultSpace : mapConfluenceItemToResultObject; return mapper(item); }