UNPKG

@atlaskit/editor-plugin-media

Version:

Media plugin for @atlaskit/editor-core

62 lines (60 loc) 2.23 kB
/** * @jsxRuntime classic * @jsx jsx */ import React from 'react'; // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports import { css, jsx } from '@emotion/react'; import { MediaBorderGapFiller } from '@atlaskit/editor-common/ui'; import { fg } from '@atlaskit/platform-feature-flags'; export const MediaSingleNodeSelector = 'media-single-node'; const absoluteDivStyles = css({ position: 'absolute', width: '100%', height: '100%' }); const forcedDimensionsStyles = css({ width: '100%', position: 'relative' }); const pointerCursorStyle = css({ cursor: 'pointer' }); export const MediaCardWrapper = ({ dimensions, children, selected, borderWidth = 0, onContextMenu }) => { const calculatedBorderWidth = selected && borderWidth > 0 ? borderWidth + 1 : borderWidth; // [FEATURE FLAG: platform_editor_media_border_radius_fix] // Fixes border radius calculation to properly fit image with 8px radius // To clean up: keep only flag-on behavior (calculatedBorderWidth + 8) const borderRadius = fg('platform_editor_media_border_radius_fix') ? `${calculatedBorderWidth + 8}px` : `${calculatedBorderWidth * 2}px`; // OLD BEHAVIOR (to be removed when flag is cleaned up) return jsx("div", { "data-testid": "media-card-wrapper" // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766 , className: "media-card-wrapper", css: pointerCursorStyle, style: { borderColor: `var(--custom-palette-color)`, borderWidth: `${calculatedBorderWidth}px`, // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766 borderStyle: 'solid', // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766 borderRadius } }, jsx("div", { css: forcedDimensionsStyles, style: { paddingBottom: `${dimensions.height / dimensions.width * 100}%` }, onContextMenuCapture: onContextMenu }, borderWidth > 0 && jsx(MediaBorderGapFiller, { borderColor: `var(--custom-palette-color)` }), jsx("div", { css: absoluteDivStyles }, children))); };