@atlaskit/editor-common
Version:
A package that contains common classes and components for editor and renderer
84 lines • 2.9 kB
JavaScript
import React from 'react';
import { injectIntl } from 'react-intl';
import Rusha from 'rusha';
import BlogObject from '@atlaskit/object/blog';
import BugObject from '@atlaskit/object/bug';
import PageObject from '@atlaskit/object/page';
import StoryObject from '@atlaskit/object/story';
import TaskObject from '@atlaskit/object/task';
import WorkItemObject from '@atlaskit/object/work-item';
import { fg } from '@atlaskit/platform-feature-flags';
import { utilMessages } from './messages';
export function filterUniqueItems(arr, comparator) {
return arr.filter((firstItem, index, self) => {
return self.findIndex(secondItem => comparator ? comparator(firstItem, secondItem) : firstItem === secondItem) === index;
});
}
const Issue16 = props => {
const {
intl
} = props;
return /*#__PURE__*/React.createElement(WorkItemObject, {
label: intl.formatMessage(fg('confluence-issue-terminology-refresh') ? utilMessages.hyperlinkIconIssueLabelIssueTermRefresh : utilMessages.hyperlinkIconIssueLabel)
});
};
const Bug16 = props => {
const {
intl
} = props;
return /*#__PURE__*/React.createElement(BugObject, {
label: intl.formatMessage(utilMessages.hyperlinkIconBugLabel)
});
};
const Story16 = props => {
const {
intl
} = props;
return /*#__PURE__*/React.createElement(StoryObject, {
label: intl.formatMessage(utilMessages.hyperlinkIconStoryLabel)
});
};
const Task16 = props => {
const {
intl
} = props;
return /*#__PURE__*/React.createElement(TaskObject, {
label: intl.formatMessage(utilMessages.hyperlinkIconTaskLabel)
});
};
const Page16 = props => {
const {
intl
} = props;
return /*#__PURE__*/React.createElement(PageObject, {
label: intl.formatMessage(utilMessages.hyperlinkIconPageLabel)
});
};
const Blog16 = props => {
const {
intl
} = props;
return /*#__PURE__*/React.createElement(BlogObject, {
label: intl.formatMessage(utilMessages.hyperlinkIconBlogLabel)
});
};
const IntlIssue16Icon = injectIntl(Issue16);
const IntlBug16Icon = injectIntl(Bug16);
const IntlStory16Icon = injectIntl(Story16);
const IntlTask16Icon = injectIntl(Task16);
const IntlPage16Icon = injectIntl(Page16);
const IntlBlog16Icon = injectIntl(Blog16);
export const mapContentTypeToIcon = {
'jira.issue': /*#__PURE__*/React.createElement(IntlIssue16Icon, null),
'jira.issue.bug': /*#__PURE__*/React.createElement(IntlBug16Icon, null),
'jira.issue.story': /*#__PURE__*/React.createElement(IntlStory16Icon, null),
'jira.issue.task': /*#__PURE__*/React.createElement(IntlTask16Icon, null),
'confluence.page': /*#__PURE__*/React.createElement(IntlPage16Icon, null),
'confluence.blogpost': /*#__PURE__*/React.createElement(IntlBlog16Icon, null)
};
export const sha1 = input => {
return Rusha.createHash().update(input).digest('hex');
};
export const wordCount = input => {
return input.split(' ').length;
};