@atlaskit/editor-plugin-hyperlink
Version:
Hyperlink plugin for @atlaskit/editor-core
44 lines (43 loc) • 1.75 kB
JavaScript
/* eslint-disable @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation */
/**
* @jsxRuntime classic
* @jsx jsx
*/
import { useCallback } from 'react';
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
import { jsx } from '@emotion/react';
import { injectIntl } from 'react-intl';
import { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
import { addLink, getAriaKeyshortcuts } from '@atlaskit/editor-common/keymaps';
import { toolbarInsertBlockMessages as messages } from '@atlaskit/editor-common/messages';
import { ToolbarButton } from '@atlaskit/editor-common/ui-menu';
import LinkIcon from '@atlaskit/icon/core/link';
const PrimaryToolbarComponentWithIntl = ({
api,
// TODO: ED-26959 - Analytics
// editorAnalyticsAPI,
intl
}) => {
const {
formatMessage
} = intl;
const content = formatMessage(messages.link);
const onClick = useCallback(() => {
var _api$core, _api$hyperlink;
api === null || api === void 0 ? void 0 : (_api$core = api.core) === null || _api$core === void 0 ? void 0 : _api$core.actions.execute(api === null || api === void 0 ? void 0 : (_api$hyperlink = api.hyperlink) === null || _api$hyperlink === void 0 ? void 0 : _api$hyperlink.commands.showLinkToolbar(INPUT_METHOD.TOOLBAR));
}, [api]);
return jsx(ToolbarButton, {
onClick: onClick,
"aria-haspopup": "dialog",
"aria-keyshortcuts": getAriaKeyshortcuts(addLink),
"aria-label": content,
testId: content,
title: content,
iconBefore: jsx(LinkIcon, {
label: content,
color: "currentColor",
spacing: "spacious"
})
});
};
export const PrimaryToolbarComponent = injectIntl(PrimaryToolbarComponentWithIntl);