UNPKG

@atlaskit/renderer

Version:
58 lines 2.42 kB
/** * @jsxRuntime classic * @jsx jsx */ // 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 TextWrapIcon from '@atlaskit/icon/core/text-wrap'; import Button from '@atlaskit/button/custom-theme-button'; import { codeBlockButtonMessages } from '@atlaskit/editor-common/messages'; import Tooltip from '@atlaskit/tooltip'; import AnalyticsContext from '../../../../analytics/analyticsContext'; import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '../../../../analytics/enums'; const CodeBlockWrapButton = ({ setWrapLongLines, wrapLongLines, intl }) => { const wrapMessage = intl.formatMessage(wrapLongLines ? codeBlockButtonMessages.unwrapCode : codeBlockButtonMessages.wrapCode); return jsx(AnalyticsContext.Consumer, null, ({ fireAnalyticsEvent }) => jsx("span", null, jsx(Tooltip, { content: wrapMessage, hideTooltipOnClick: false, position: "top" }, jsx(Button, { appearance: "subtle", "aria-haspopup": true, "aria-label": wrapMessage // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766 , className: `wrap-code ${wrapLongLines ? 'clicked' : ''}`, iconBefore: jsx(TextWrapIcon, { label: "" }), isSelected: wrapLongLines // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , onClick: event => { fireAnalyticsEvent({ // @ts-expect-error - Type 'ACTION.CLICKED' is not assignable to type 'ACTION.CLICKED | ACTION.MEDIA_LINK_TRANSFORMED | ACTION.STARTED | ACTION.TOGGLE_EXPAND | ACTION.UNSUPPORTED_CONTENT_ENCOUNTERED | ACTION.VISITED | ACTION.RENDERED | ACTION.INVALID_PROSEMIRROR_DOCUMENT | ACTION.CRASHED | ... 6 more ... | AnnotationActionType' // This error was introduced after upgrading to TypeScript 5 action: ACTION.CLICKED, actionSubject: ACTION_SUBJECT.BUTTON, actionSubjectId: ACTION_SUBJECT_ID.CODEBLOCK_WRAP, attributes: { wrapped: !wrapLongLines }, eventType: EVENT_TYPE.UI }); setWrapLongLines(!wrapLongLines); event.stopPropagation(); }, spacing: "compact" })))); }; const _default_1 = injectIntl(CodeBlockWrapButton); export default _default_1;