feat: add send mail icon

This commit is contained in:
Ahmed Bouhuolia
2023-12-26 22:57:41 +02:00
parent de1b7f132c
commit c46948049c
26 changed files with 369 additions and 82 deletions

View File

@@ -23,6 +23,7 @@ function EstimateMailDialog({
isOpen={isOpen}
canEscapeJeyClose={true}
autoFocus={true}
style={{ width: 600 }}
>
<DialogSuspense>
<EstimateMailDialogContent
@@ -33,4 +34,5 @@ function EstimateMailDialog({
</Dialog>
);
}
export default compose(withDialogRedux())(EstimateMailDialog);

View File

@@ -26,6 +26,7 @@ function EstimateMailDialogBoot({
useSaleEstimateDefaultOptions(estimateId);
const provider = {
saleEstimateId: estimateId,
mailOptions,
isMailOptionsLoading,
};

View File

@@ -1,8 +1,13 @@
// @ts-nocheck
import { Formik } from 'formik';
import * as R from 'ramda';
import { castArray } from 'lodash';
import { useEstimateMailDialogBoot } from './EstimateMailDialogBoot';
import { transformToForm } from '@/utils';
import { SendMailNotificationForm } from '@/containers/SendMailNotification';
import { castArray } from 'lodash';
import withDialogActions from '@/containers/Dialog/withDialogActions';
import { DialogsName } from '@/constants/dialogs';
import { useSendSaleEstimateMail } from '@/hooks/query';
const initialFormValues = {
from: [],
@@ -11,8 +16,20 @@ const initialFormValues = {
message: '',
};
export function EstimateMailDialogForm() {
const { mailOptions } = useEstimateMailDialogBoot();
interface EstimateMailFormValues {
from: string[];
to: string[];
subject: string;
message: string;
attachEstimate: boolean;
}
function EstimateMailDialogFormRoot(
// #withDialogClose
closeDialog,
) {
const { mutateAsync: sendEstimateMail } = useSendSaleEstimateMail();
const { mailOptions, saleEstimateId } = useEstimateMailDialogBoot();
const initialValues = {
...initialFormValues,
@@ -20,12 +37,29 @@ export function EstimateMailDialogForm() {
from: mailOptions.from ? castArray(mailOptions.from) : [],
to: mailOptions.to ? castArray(mailOptions.to) : [],
};
// Handle the form submitting.
const handleSubmit = (values: EstimateMailFormValues, { setSubmitting }) => {
setSubmitting(true);
sendEstimateMail([saleEstimateId, values])
.then(() => {
setSubmitting(false);
})
.catch((error) => {
setSubmitting(false);
});
};
const handleSubmit = () => {};
const handleClose = () => {
closeDialog(DialogsName.EstimateMail);
};
return (
<Formik initialValues={initialValues} onSubmit={handleSubmit}>
<SendMailNotificationForm />
<SendMailNotificationForm onClose={handleClose} />
</Formik>
);
}
export const EstimateMailDialogForm = R.compose(withDialogActions)(
EstimateMailDialogFormRoot,
);