/** * * FormModal * */ import React from 'react'; import { useIntl } from 'react-intl'; import { Stack, Grid, GridItem, ModalLayout, ModalHeader, ModalFooter, ModalBody, Button, Breadcrumbs, Crumb, } from '@strapi/parts'; import PropTypes from 'prop-types'; import { Formik } from 'formik'; import { Form } from '@strapi/helper-plugin'; import Input from './Input'; const FormModal = ({ headerBreadcrumbs, initialData, isSubmiting, layout, isOpen, onSubmit, onToggle, providerToEditName, }) => { const { formatMessage } = useIntl(); if (!isOpen) { return null; } return ( {headerBreadcrumbs.map(crumb => ( {crumb} ))} onSubmit(values)} initialValues={initialData} validationSchema={layout.schema} validateOnChange={false} > {({ errors, handleChange, values }) => { return (
{layout.form.map(row => { return row.map(input => { return ( ); }); })} {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel', })} } endActions={ <> } /> ); }}
); }; FormModal.defaultProps = { initialData: null, providerToEditName: null, }; FormModal.propTypes = { headerBreadcrumbs: PropTypes.arrayOf(PropTypes.string).isRequired, initialData: PropTypes.object, layout: PropTypes.shape({ form: PropTypes.arrayOf(PropTypes.array), schema: PropTypes.object, }).isRequired, isOpen: PropTypes.bool.isRequired, isSubmiting: PropTypes.bool.isRequired, onSubmit: PropTypes.func.isRequired, onToggle: PropTypes.func.isRequired, providerToEditName: PropTypes.string, }; export default FormModal;