UNPKG

@atlaskit/editor-plugin-layout

Version:

Layout plugin for @atlaskit/editor-core

58 lines (57 loc) 2.99 kB
/** * @jsxRuntime classic * @jsx jsx */ import { useMemo } from 'react'; // eslint-disable-next-line @atlaskit/ui-styling-standard/no-global-styles, @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports import { css, Global, jsx } from '@emotion/react'; import { useIntl } from 'react-intl'; import { layoutMessages as messages } from '@atlaskit/editor-common/messages'; import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments'; const PLACEHOLDER_SELECTOR = '.ProseMirror-focused .layoutSectionView-content-wrap.selected [data-layout-column] > [data-layout-content] > p:only-child:has(.ProseMirror-trailingBreak:only-child)'; const getPlaceholderStyle = message => { if (editorExperiment('platform_editor_controls', 'variant1')) { return css({ // when paragraph is the only child, and it only has a trailingBreak. // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766 [`${PLACEHOLDER_SELECTOR}`]: { // eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles -- Ignored via go/DSP-18766 '&::before': { // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values content: `"${message}"`, position: 'absolute', color: "var(--ds-text-subtlest, #6B6E76)", pointerEvents: 'none' } } }); } return css({ // when paragraph is the only child, and it only has a trailingBreak. // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors -- Ignored via go/DSP-18766 '.ProseMirror .layoutSectionView-content-wrap.selected [data-layout-column] > [data-layout-content] > p:only-child:has(.ProseMirror-trailingBreak:only-child)': { // eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles -- Ignored via go/DSP-18766 '&::before': { // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values content: `"${message}"`, position: 'absolute', color: "var(--ds-text-disabled, #080F214A)", font: "var(--ds-font-body, normal 400 14px/20px \"Atlassian Sans\", ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, \"Helvetica Neue\", sans-serif)", marginTop: "var(--ds-space-050, 4px)", pointerEvents: 'none' } } }); }; export const GlobalStylesWrapper = () => { const { formatMessage } = useIntl(); const placeholderStyle = useMemo(() => { const placeholderText = editorExperiment('platform_editor_controls', 'variant1') ? messages.controlslayoutPlaceholder : messages.layoutPlaceholder; return getPlaceholderStyle(formatMessage(placeholderText)); }, [formatMessage]); return jsx(Global, { styles: placeholderStyle }); };