diff --git a/packages/@sanity/base/src/preview/SanityDefaultPreview.js b/packages/@sanity/base/src/preview/SanityDefaultPreview.js index dedf6f3352c..4b5a63321b0 100644 --- a/packages/@sanity/base/src/preview/SanityDefaultPreview.js +++ b/packages/@sanity/base/src/preview/SanityDefaultPreview.js @@ -55,7 +55,7 @@ export default class SanityDefaultPreview extends React.PureComponent { const imageUrl = value.imageUrl if (imageUrl) { const assetUrl = assetUrlBuilder(imageUrl, {dimensions}) - return {value.title} + return {value.title} } if (!media) { diff --git a/packages/@sanity/components/src/previews/BlockPreview.js b/packages/@sanity/components/src/previews/BlockPreview.js index 47014b4021c..a758fd235bf 100644 --- a/packages/@sanity/components/src/previews/BlockPreview.js +++ b/packages/@sanity/components/src/previews/BlockPreview.js @@ -2,18 +2,20 @@ import PropTypes from 'prop-types' import React from 'react' import styles from 'part:@sanity/components/previews/block-style' +const fieldProp = PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.func]) + export default class BlockPreview extends React.PureComponent { static propTypes = { title: PropTypes.string, subtitle: PropTypes.string, description: PropTypes.string, - me: PropTypes.func, mediaDimensions: PropTypes.shape({ width: PropTypes.number, height: PropTypes.number, fit: PropTypes.oneOf(['clip', 'crop', 'clamp']), aspect: PropTypes.number, }), + media: fieldProp, children: PropTypes.func, type: PropTypes.shape({ title: PropTypes.string, @@ -35,7 +37,7 @@ export default class BlockPreview extends React.PureComponent { subtitle, description, mediaDimensions, - renderMedia, + media, children, type } = this.props @@ -48,9 +50,21 @@ export default class BlockPreview extends React.PureComponent { {type.title || type.name} { - renderMedia && ( -
- {renderMedia(mediaDimensions)} + media && ( +
+ { + typeof media === 'function' && ( + media({dimensions: mediaDimensions, layout: 'default'}) + ) + } + { + typeof media === 'string' && ( +
{media}
+ ) + } + { + typeof media === 'object' && media + }
) }