UNPKG

@atlaskit/editor-plugin-card

Version:

Card plugin for @atlaskit/editor-core

51 lines 2.13 kB
import { inlineCard, inlineCardWithLocalId } from '@atlaskit/adf-schema'; import { convertToInlineCss } from '@atlaskit/editor-common/lazy-node-view'; import { fg } from '@atlaskit/platform-feature-flags'; // @nodeSpecException:toDOM patch export const inlineCardSpecWithFixedToDOM = () => { const inlineCardNode = fg('platform_editor_adf_with_localid') ? inlineCardWithLocalId : inlineCard; return { ...inlineCardNode, toDOM: node => { const wrapperAttrs = { class: 'inlineCardView-content-wrap inlineNodeView' }; const cardAttrs = { 'aria-busy': 'true', class: 'card' }; const attrs = { 'data-inline-card': '', href: node.attrs.url || '', 'data-card-data': node.attrs.data ? JSON.stringify(node.attrs.data) : '', // LoadingCardLink used for Suspense in `packages/linking-platform/smart-card/src/view/CardWithUrl/loader.tsx` // We need to match the style of LoadingCardLink // Which uses frame styling `packages/linking-platform/smart-card/src/view/InlineCard/Frame/styled.ts`, with withoutBackground=true style: convertToInlineCss({ padding: `${"var(--ds-space-025, 2px)"} 0px`, marginLeft: "var(--ds-space-negative-025, -2px)", display: 'inline', boxDecorationBreak: 'clone', WebkitBoxDecorationBreak: 'clone', borderRadius: "var(--ds-radius-small, 4px)", color: "var(--ds-link, #1868DB)", lineHeight: '22px', WebkitTransition: '0.1s all ease-in-out', transition: '0.1s all ease-in-out', userSelect: 'text', WebkitUserSelect: 'text', msUserSelect: 'text', MozUserSelect: 'none' // -moz-user-select }), ...(fg('platform_editor_adf_with_localid') ? { 'data-local-id': node.attrs.localId } : {}) }; if (node.attrs.url) { return ['span', wrapperAttrs, ['span', cardAttrs, ['a', attrs, node.attrs.url]]]; } else { return ['span', wrapperAttrs, ['span', cardAttrs, ['a', attrs]]]; } } }; };