UNPKG

@atlaskit/global-search

Version:

A cross-product search component (batteries included)

157 lines (133 loc) 5.89 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.mapSearchResultsToUIGroups = exports.mapRecentResultsToUIGroups = exports.MAX_RECENT_RESULTS_TO_SHOW = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _Result = require("../../model/Result"); var _SearchResultsUtil = require("../SearchResultsUtil"); var _messages = require("../../messages"); var _contextIdentifiersHelper = require("../common/contextIdentifiersHelper"); var _experimentUtils = require("../../util/experiment-utils"); var DEFAULT_MAX_OBJECTS = 8; var MAX_CONTAINERS = 6; var MAX_PEOPLE = 3; var MAX_RECENT_RESULTS_TO_SHOW = 3; exports.MAX_RECENT_RESULTS_TO_SHOW = MAX_RECENT_RESULTS_TO_SHOW; var DEFAULT_JIRA_RESULTS_MAP = { objects: [], containers: [], people: [] }; var isEmpty = function isEmpty() { var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; return !arr.length; }; var hasNoResults = function hasNoResults() { var objects = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var poeple = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var containers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; return isEmpty(objects) && isEmpty(poeple) && isEmpty(containers); }; var sliceResults = function sliceResults(resultsMap, abTest) { var _ref = resultsMap ? resultsMap : DEFAULT_JIRA_RESULTS_MAP, objects = _ref.objects, containers = _ref.containers, people = _ref.people; var _map = [{ items: objects, count: (0, _experimentUtils.getJiraMaxObjects)(abTest, DEFAULT_MAX_OBJECTS) }, { items: people, count: MAX_PEOPLE }, { items: containers, count: MAX_CONTAINERS }].map(function (_ref2) { var items = _ref2.items, count = _ref2.count; return (0, _SearchResultsUtil.take)(items, count); }), _map2 = (0, _slicedToArray2.default)(_map, 3), objectsToDisplay = _map2[0], peopleToDisplay = _map2[1], containersToDisplay = _map2[2]; return { objectsToDisplay: objectsToDisplay, containersToDisplay: containersToDisplay, peopleToDisplay: peopleToDisplay }; }; var mapRecentResultsToUIGroups = function mapRecentResultsToUIGroups(recentlyViewedObjects, searchSessionId, features, appPermission) { var withSessionId = recentlyViewedObjects !== null ? (0, _contextIdentifiersHelper.attachJiraContextIdentifiers)(searchSessionId, recentlyViewedObjects) : recentlyViewedObjects; var _sliceResults = sliceResults(withSessionId, features.abTest), objectsToDisplay = _sliceResults.objectsToDisplay, peopleToDisplay = _sliceResults.peopleToDisplay, containersToDisplay = _sliceResults.containersToDisplay; return [{ items: objectsToDisplay, key: 'issues', title: _messages.messages.jira_recent_issues_heading, totalSize: objectsToDisplay.length, showTotalSize: false // Jira doesn't support search extensions yet }, { items: containersToDisplay, key: 'containers', title: appPermission && !appPermission.hasSoftwareAccess ? _messages.messages.jira_recent_core_containers : _messages.messages.jira_recent_containers, totalSize: containersToDisplay.length, showTotalSize: false }, { items: peopleToDisplay, key: 'people', title: _messages.messages.jira_recent_people_heading, totalSize: peopleToDisplay.length, showTotalSize: false }]; }; exports.mapRecentResultsToUIGroups = mapRecentResultsToUIGroups; var mapSearchResultsToUIGroups = function mapSearchResultsToUIGroups(searchResultsObjects, searchSessionId, features, appPermission, query) { var withSessionId = searchResultsObjects !== null ? (0, _contextIdentifiersHelper.attachJiraContextIdentifiers)(searchSessionId, searchResultsObjects) : searchResultsObjects; var _sliceResults2 = sliceResults(withSessionId, features.abTest), objectsToDisplay = _sliceResults2.objectsToDisplay, peopleToDisplay = _sliceResults2.peopleToDisplay, containersToDisplay = _sliceResults2.containersToDisplay; return [{ items: objectsToDisplay, key: 'issues', title: _messages.messages.jira_search_result_issues_heading, showTotalSize: false, // Jira doesn't support search extensions yet totalSize: objectsToDisplay.length }].concat((0, _toConsumableArray2.default)(!hasNoResults(objectsToDisplay, peopleToDisplay, containersToDisplay) ? [{ items: [{ resultType: _Result.ResultType.JiraIssueAdvancedSearch, resultId: 'search-jira', name: 'jira', href: (0, _SearchResultsUtil.getJiraAdvancedSearchUrl)({ entityType: _SearchResultsUtil.JiraEntityTypes.Issues, query: query }), analyticsType: _Result.AnalyticsType.LinkPostQueryAdvancedSearchJira, contentType: _Result.ContentType.JiraIssue }], key: 'issue-advanced', title: isEmpty(objectsToDisplay) ? _messages.messages.jira_search_result_issues_heading : undefined, showTotalSize: false, totalSize: 1 }] : []), [{ items: containersToDisplay, key: 'containers', title: appPermission && !appPermission.hasSoftwareAccess ? _messages.messages.jira_search_result_core_containers_heading : _messages.messages.jira_search_result_containers_heading, showTotalSize: false, totalSize: containersToDisplay.length }, { items: peopleToDisplay, key: 'people', title: _messages.messages.jira_search_result_people_heading, showTotalSize: false, totalSize: peopleToDisplay.length }]); }; exports.mapSearchResultsToUIGroups = mapSearchResultsToUIGroups;