// @flow import * as React from 'react'; import { FormattedMessage } from 'react-intl'; import Field from './fields/Field'; import messages from './messages'; import isHidden from './metadataUtil'; import './TemplatedInstance.scss'; type Props = { canEdit: boolean, data: MetadataFields, errors: { [string]: React.Node }, onFieldChange?: (key: string, value: MetadataFieldValue, type: string) => void, onFieldRemove?: (key: string) => void, template: MetadataTemplate, }; const TemplatedInstance = ({ canEdit, data = {}, errors, onFieldChange, onFieldRemove, template }: Props) => { const { fields = [] } = template; const hasFields = fields.length > 0; const hasVisibleFields = hasFields && fields.some(field => !isHidden(field)); const showNoFieldsMessage = !hasFields; const showHiddenFieldsMessage = hasFields && !hasVisibleFields; return ( {hasVisibleFields && fields.map(field => ( ); }; export default TemplatedInstance;