@atlaskit/global-search
Version:
A cross-product search component (batteries included)
61 lines (54 loc) • 2.43 kB
JavaScript
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());
}
}