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,
});
}