import React from 'react'; import PropTypes from 'prop-types'; import { ActionRow, Button, Form, Icon, } from '@edx/paragon'; import classNames from 'classnames'; import DatePicker from 'react-datepicker/dist'; import { useIntl } from '@edx/frontend-platform/i18n'; import { Calendar as CalendarIcon, Error as ErrorIcon } from '@edx/paragon/icons'; import { Formik } from 'formik'; import { convertToStringFromDate, convertToDateFromString, isValidDate, } from '../../utils'; import { DATE_FORMAT, DEFAULT_EMPTY_WYSIWYG_VALUE } from '../../constants'; import { WysiwygEditor } from '../../generic/WysiwygEditor'; import { REQUEST_TYPES } from '../constants'; import { geUpdateFormSettings } from './utils'; import messages from './messages'; const UpdateForm = ({ close, requestType, onSubmit, courseUpdatesInitialValues, isInnerForm, isFirstUpdate, }) => { const intl = useIntl(); const { currentContent, formTitle, validationSchema, contentFieldName, submitButtonText, } = geUpdateFormSettings(requestType, courseUpdatesInitialValues, intl); return (
{({ values, handleSubmit, isValid, setFieldValue, }) => ( <>

{formTitle}

{(requestType !== REQUEST_TYPES.edit_handouts) && ( {intl.formatMessage(messages.updateFormDate)}
{ if (!isValidDate(value)) { return; } setFieldValue('date', convertToStringFromDate(value)); }} />
{!isValid && (
{intl.formatMessage(messages.updateFormInValid)}
)}
)} { setFieldValue(contentFieldName, value || DEFAULT_EMPTY_WYSIWYG_VALUE); }} /> )}
); }; UpdateForm.defaultProps = { isInnerForm: false, isFirstUpdate: false, }; UpdateForm.propTypes = { // eslint-disable-next-line react/forbid-prop-types courseUpdatesInitialValues: PropTypes.object.isRequired, close: PropTypes.func.isRequired, requestType: PropTypes.string.isRequired, onSubmit: PropTypes.func.isRequired, isInnerForm: PropTypes.bool, isFirstUpdate: PropTypes.bool, }; export default UpdateForm;