@atlaskit/editor-common
Version:
A package that contains common classes and components for editor and renderer
64 lines (62 loc) • 1.97 kB
JavaScript
/**
* @jsxRuntime classic
* @jsx jsx
*/
import { Fragment, useMemo } from 'react';
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
import { jsx } from '@emotion/react';
import { getRandomHex } from '@atlaskit/media-common';
import { useFilePreview } from '@atlaskit/media-file-preview';
import { MediaImage } from '@atlaskit/media-ui';
import { InlineImageCardLoadingView } from './views/loading-view';
export var InlineImageCard = function InlineImageCard(_ref) {
var dimensions = _ref.dimensions,
identifier = _ref.identifier,
renderError = _ref.renderError,
alt = _ref.alt,
isLazy = _ref.isLazy,
ssr = _ref.ssr,
crop = _ref.crop,
stretch = _ref.stretch;
// Generate unique traceId for file
var traceContext = useMemo(function () {
return {
traceId: getRandomHex(8)
};
}, []);
// TODO do we need to handle nonCriticalError
var _useFilePreview = useFilePreview({
identifier: identifier,
ssr: ssr,
dimensions: dimensions,
traceContext: traceContext
}),
preview = _useFilePreview.preview,
previewError = _useFilePreview.error,
onImageError = _useFilePreview.onImageError,
_onImageLoad = _useFilePreview.onImageLoad,
getSsrScriptProps = _useFilePreview.getSsrScriptProps,
copyNodeRef = _useFilePreview.copyNodeRef;
if (previewError) {
return renderError({
error: previewError
});
}
if (!preview) {
return jsx(InlineImageCardLoadingView, null);
}
return jsx(Fragment, null, jsx(MediaImage, {
dataURI: preview.dataURI,
alt: alt,
previewOrientation: preview.orientation,
onImageLoad: function onImageLoad() {
_onImageLoad(preview);
},
onImageError: onImageError,
loading: isLazy ? 'lazy' : undefined,
forceSyncDisplay: !!ssr,
crop: crop,
stretch: stretch,
ref: copyNodeRef
}), getSsrScriptProps && jsx("script", getSsrScriptProps()));
};