import React, { useMemo } from 'react'; import * as Yup from 'yup'; import { Formik, Form } from 'formik'; import { FormattedMessage as T } from 'components'; import { Intent, Button, Classes } from '@blueprintjs/core'; import 'style/pages/ReferenceNumber/ReferenceNumber.scss'; import { FormObserver } from 'components'; import ReferenceNumberFormContent from './ReferenceNumberFormContent'; import { transformValuesToForm } from './utils'; import { saveInvoke } from 'utils'; /** * Reference number form. */ export default function ReferenceNumberForm({ onSubmit, onClose, initialValues, description, onChange, }) { // Validation schema. const validationSchema = Yup.object().shape({ incrementMode: Yup.string(), numberPrefix: Yup.string(), nextNumber: Yup.number(), manualTransactionNo: Yup.string(), }); // Initial values. const formInitialValues = useMemo( () => ({ ...initialValues, incrementMode: initialValues.incrementMode === 'auto' && initialValues.manualTransactionNo ? 'manual-transaction' : initialValues.incrementMode, }), [initialValues], ); // Handle the form submit. const handleSubmit = (values, methods) => { const parsed = transformValuesToForm(values); saveInvoke(onSubmit, { ...parsed, ...values }, methods); }; return ( {({ isSubmitting, values }) => (

{description}

)}
); }