UNPKG

netlify-cms-widget-image

Version:

Widget for uploading images in Netlify CMS.

41 lines (34 loc) 1.06 kB
import React from 'react'; import PropTypes from 'prop-types'; import styled from '@emotion/styled'; import { List } from 'immutable'; import { WidgetPreviewContainer } from 'netlify-cms-ui-default'; const StyledImage = styled(({ src }) => <img src={src || ''} role="presentation" />)` display: block; max-width: 100%; height: auto; `; function StyledImageAsset({ getAsset, value, field }) { return <StyledImage src={getAsset(value, field)} />; } function ImagePreviewContent(props) { const { value, getAsset, field } = props; if (Array.isArray(value) || List.isList(value)) { return value.map(val => ( <StyledImageAsset key={val} value={val} getAsset={getAsset} field={field} /> )); } return <StyledImageAsset {...props} />; } function ImagePreview(props) { return ( <WidgetPreviewContainer> {props.value ? <ImagePreviewContent {...props} /> : null} </WidgetPreviewContainer> ); } ImagePreview.propTypes = { getAsset: PropTypes.func.isRequired, value: PropTypes.node, }; export default ImagePreview;