@atlaskit/renderer
Version:
Renderer component
57 lines • 2.75 kB
JavaScript
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
/**
* @jsxRuntime classic
* @jsx jsx
*/
import { useState } 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 { CodeBlockSharedCssClassName } from '@atlaskit/editor-common/styles';
import { CodeBlock as AkCodeBlock } from '@atlaskit/code';
import { codeBidiWarningMessages } from '@atlaskit/editor-common/messages';
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
import CodeBlockContainer from './components/codeBlockContainer';
function CodeBlock(props) {
var text = props.text,
language = props.language,
_props$allowCopyToCli = props.allowCopyToClipboard,
allowCopyToClipboard = _props$allowCopyToCli === void 0 ? false : _props$allowCopyToCli,
_props$allowWrapCodeB = props.allowWrapCodeBlock,
allowWrapCodeBlock = _props$allowWrapCodeB === void 0 ? false : _props$allowWrapCodeB,
codeBidiWarningTooltipEnabled = props.codeBidiWarningTooltipEnabled,
_props$hideLineNumber = props.hideLineNumbers,
hideLineNumbers = _props$hideLineNumber === void 0 ? false : _props$hideLineNumber,
localId = props.localId,
wrap = props.wrap;
var codeBidiWarningLabel = props.intl.formatMessage(codeBidiWarningMessages.label);
var className = [CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER, props.className].join(' ');
var _useState = useState(function () {
return expValEquals('platform_editor_code_block_q4_lovability', 'isEnabled', true) && Boolean(wrap);
}),
_useState2 = _slicedToArray(_useState, 2),
wrapLongLines = _useState2[0],
setWrapLongLines = _useState2[1];
return jsx(CodeBlockContainer, {
allowCopyToClipboard: allowCopyToClipboard,
allowWrapCodeBlock: allowWrapCodeBlock
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
,
className: className,
localId: localId,
setWrapLongLines: setWrapLongLines,
text: text,
wrapLongLines: wrapLongLines
}, jsx(AkCodeBlock, {
testId: "renderer-code-block",
language: language,
text: text,
codeBidiWarningLabel: codeBidiWarningLabel,
codeBidiWarningTooltipEnabled: codeBidiWarningTooltipEnabled,
shouldWrapLongLines: allowWrapCodeBlock && wrapLongLines,
shouldShowLineNumbers: !(expValEquals('platform_editor_code_block_q4_lovability', 'isEnabled', true) && hideLineNumbers),
hasBidiWarnings: expValEquals('platform_editor_remove_bidi_char_warning', 'isEnabled', true) ? false : undefined
}));
}
var _default_1 = injectIntl(CodeBlock);
export default _default_1;