diff --git a/src/components/PreviewPane/Preview.js b/src/components/PreviewPane/Preview.js index 0d1dabc0..86f03071 100644 --- a/src/components/PreviewPane/Preview.js +++ b/src/components/PreviewPane/Preview.js @@ -1,39 +1,21 @@ import React, { PropTypes } from 'react'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import { resolveWidget } from '../Widgets'; -export default class Preview extends React.Component { - - previewFor(field) { - const { entry, getMedia } = this.props; - const widget = resolveWidget(field.get('widget')); - return React.createElement(widget.preview, { - field: field, - value: entry.getIn(['data', field.get('name')]), - getMedia: getMedia, - }); +export default function Preview({ collection, widgetFor }) { + if (!collection) { + return null; } - render() { - const { collection } = this.props; - if (!collection) { - return null; - } - - return
- { - collection.get('fields').map(field => ( -
- {this.previewFor(field)} -
- )) - } -
; - } + return ( +
+ {collection.get('fields').map(field => widgetFor(field.get('name')))} +
+ ); } Preview.propTypes = { collection: ImmutablePropTypes.map.isRequired, entry: ImmutablePropTypes.map.isRequired, getMedia: PropTypes.func.isRequired, + widgetFor: PropTypes.func.isRequired, }; diff --git a/src/components/PreviewPane/PreviewPane.js b/src/components/PreviewPane/PreviewPane.js index 59ab0e4f..e97348bb 100644 --- a/src/components/PreviewPane/PreviewPane.js +++ b/src/components/PreviewPane/PreviewPane.js @@ -25,9 +25,10 @@ export default class PreviewPane extends React.Component { const field = collection.get('fields').find((field) => field.get('name') === name); const widget = resolveWidget(field.get('widget')); return React.createElement(widget.preview, { - field: field, + key: field.get('name'), value: entry.getIn(['data', field.get('name')]), - getMedia: getMedia, + field, + getMedia, }); }