Skip to content

Commit

Permalink
[components] Adding support for new media in block preview (#477)
Browse files Browse the repository at this point in the history
  • Loading branch information
Kristoffer J. Sivertsen authored and bjoerge committed Jan 10, 2018
1 parent bf737e9 commit 1492ab1
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 6 deletions.
2 changes: 1 addition & 1 deletion packages/@sanity/base/src/preview/SanityDefaultPreview.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ export default class SanityDefaultPreview extends React.PureComponent {
const imageUrl = value.imageUrl
if (imageUrl) {
const assetUrl = assetUrlBuilder(imageUrl, {dimensions})
return <img src={assetUrl} alt={value.title} />
return <img src={assetUrl} alt={value.title} style={{objectFit: 'cover', height: '100%', width: '100%'}} />
}

if (!media) {
Expand Down
24 changes: 19 additions & 5 deletions packages/@sanity/components/src/previews/BlockPreview.js
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -35,7 +37,7 @@ export default class BlockPreview extends React.PureComponent {
subtitle,
description,
mediaDimensions,
renderMedia,
media,
children,
type
} = this.props
Expand All @@ -48,9 +50,21 @@ export default class BlockPreview extends React.PureComponent {
{type.title || type.name}
</div>
{
renderMedia && (
<div className={styles.media}>
{renderMedia(mediaDimensions)}
media && (
<div className={`${styles.media}`}>
{
typeof media === 'function' && (
media({dimensions: mediaDimensions, layout: 'default'})
)
}
{
typeof media === 'string' && (
<div className={styles.mediaString}>{media}</div>
)
}
{
typeof media === 'object' && media
}
</div>
)
}
Expand Down

0 comments on commit 1492ab1

Please sign in to comment.