UNPKG

@atlaskit/global-search

Version:

A cross-product search component (batteries included)

61 lines (54 loc) 2.43 kB
import _defineProperty from "@babel/runtime/helpers/defineProperty"; import React from 'react'; import { FormattedMessage } from 'react-intl'; import Button from '@atlaskit/button/custom-theme-button'; // AFP-2532 TODO: Fix automatic suppressions below // eslint-disable-next-line @atlassian/tangerine/import/entry-points import { gridSize } from '@atlaskit/theme'; import styled from 'styled-components'; import { messages } from '../../messages'; import { getJiraAdvancedSearchUrl, JiraEntityTypes } from '../SearchResultsUtil'; const TextContainer = styled.div` margin-right: ${gridSize()}px; height: ${3 * gridSize()}px; line-height: ${3 * gridSize()}px; white-space: nowrap; `; const Container = styled.div` margin: ${1.5 * gridSize()}px; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: left; `; const ButtonWrapper = styled.div` margin-right: ${0.5 * gridSize()}px; `; const itemI18nKeySuffix = [JiraEntityTypes.Issues, JiraEntityTypes.Boards, JiraEntityTypes.Projects, JiraEntityTypes.Filters, JiraEntityTypes.People]; const getI18nItemName = i18nKeySuffix => { const id = `jira_advanced_search_${i18nKeySuffix}`; return /*#__PURE__*/React.createElement(FormattedMessage, messages[id]); }; export default class JiraAdvancedSearch extends React.Component { constructor(...args) { super(...args); _defineProperty(this, "state", { entity: JiraEntityTypes.Issues }); _defineProperty(this, "renderLinks", () => itemI18nKeySuffix.filter(key => !this.props.appPermission || key !== JiraEntityTypes.Boards || this.props.appPermission && this.props.appPermission.hasSoftwareAccess).map(item => /*#__PURE__*/React.createElement(ButtonWrapper, { key: `btnwrapper_${item}` }, /*#__PURE__*/React.createElement(Button, { key: `btn_${item}`, spacing: "compact", onMouseEnter: e => e.stopPropagation(), onClick: e => this.props.onClick && this.props.onClick(e, item), href: getJiraAdvancedSearchUrl({ entityType: item, query: this.props.query, isJiraPeopleProfilesEnabled: this.props.isJiraPeopleProfilesEnabled }) }, getI18nItemName(item))))); } render() { return /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(TextContainer, null, /*#__PURE__*/React.createElement(FormattedMessage, messages.jira_advanced_search)), this.renderLinks()); } }