mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-17 13:20:31 +00:00
feat(webapp): showing up mail popup once saving invoice, receipt and estimate
This commit is contained in:
@@ -4,21 +4,16 @@ import { Dialog, DialogSuspense } from '@/components';
|
||||
import withDialogRedux from '@/components/DialogReduxConnect';
|
||||
import { compose } from '@/utils';
|
||||
|
||||
const EstimateMailDialogContent = React.lazy(
|
||||
() => import('./EstimateMailDialogContent'),
|
||||
const EstimateMailDialogBody = React.lazy(
|
||||
() => import('./EstimateMailDialogBody'),
|
||||
);
|
||||
|
||||
/**
|
||||
* Invoice mail dialog.
|
||||
* Estimate mail dialog.
|
||||
*/
|
||||
function EstimateMailDialog({
|
||||
dialogName,
|
||||
payload: {
|
||||
estimateId = null,
|
||||
|
||||
// Redirect to the estimates list after mail submitting.
|
||||
redirectToEstimatesList = false,
|
||||
},
|
||||
payload: { estimateId = null },
|
||||
isOpen,
|
||||
}) {
|
||||
return (
|
||||
@@ -31,11 +26,7 @@ function EstimateMailDialog({
|
||||
style={{ width: 600 }}
|
||||
>
|
||||
<DialogSuspense>
|
||||
<EstimateMailDialogContent
|
||||
dialogName={dialogName}
|
||||
estimateId={estimateId}
|
||||
redirectToEstimatesList={redirectToEstimatesList}
|
||||
/>
|
||||
<EstimateMailDialogBody estimateId={estimateId} />
|
||||
</DialogSuspense>
|
||||
</Dialog>
|
||||
);
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
// @ts-nocheck
|
||||
import * as R from 'ramda';
|
||||
import withDialogActions from '@/containers/Dialog/withDialogActions';
|
||||
import EstimateMailDialogContent from './EstimateMailDialogContent';
|
||||
import { DialogsName } from '@/constants/dialogs';
|
||||
|
||||
interface EstimateMailDialogBodyProps {
|
||||
estimateId: number;
|
||||
}
|
||||
|
||||
function EstimateMailDialogBodyRoot({
|
||||
estimateId,
|
||||
|
||||
// #withDialogActions
|
||||
closeDialog,
|
||||
}: EstimateMailDialogBodyProps) {
|
||||
const handleSubmit = () => {
|
||||
closeDialog(DialogsName.EstimateMail);
|
||||
};
|
||||
const handleCancelClick = () => {
|
||||
closeDialog(DialogsName.EstimateMail);
|
||||
};
|
||||
|
||||
return (
|
||||
<EstimateMailDialogContent
|
||||
estimateId={estimateId}
|
||||
onFormSubmit={handleSubmit}
|
||||
onCancelClick={handleCancelClick}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
export default R.compose(withDialogActions)(EstimateMailDialogBodyRoot);
|
||||
@@ -2,21 +2,21 @@ import { EstimateMailDialogBoot } from './EstimateMailDialogBoot';
|
||||
import { EstimateMailDialogForm } from './EstimateMailDialogForm';
|
||||
|
||||
interface EstimateMailDialogContentProps {
|
||||
dialogName: string;
|
||||
estimateId: number;
|
||||
redirectToEstimatesList?: boolean;
|
||||
onFormSubmit?: () => void;
|
||||
onCancelClick?: () => void;
|
||||
}
|
||||
export default function EstimateMailDialogContent({
|
||||
dialogName,
|
||||
estimateId,
|
||||
redirectToEstimatesList,
|
||||
onFormSubmit,
|
||||
onCancelClick,
|
||||
}: EstimateMailDialogContentProps) {
|
||||
return (
|
||||
<EstimateMailDialogBoot
|
||||
estimateId={estimateId}
|
||||
redirectToEstimatesList={redirectToEstimatesList}
|
||||
>
|
||||
<EstimateMailDialogForm />
|
||||
<EstimateMailDialogBoot estimateId={estimateId}>
|
||||
<EstimateMailDialogForm
|
||||
onFormSubmit={onFormSubmit}
|
||||
onCancelClick={onCancelClick}
|
||||
/>
|
||||
</EstimateMailDialogBoot>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
import { Formik } from 'formik';
|
||||
import * as R from 'ramda';
|
||||
import { Intent } from '@blueprintjs/core';
|
||||
import { useHistory } from 'react-router-dom';
|
||||
import { useEstimateMailDialogBoot } from './EstimateMailDialogBoot';
|
||||
import { DialogsName } from '@/constants/dialogs';
|
||||
import withDialogActions from '@/containers/Dialog/withDialogActions';
|
||||
@@ -26,6 +25,9 @@ interface EstimateMailFormValues extends MailNotificationFormValues {
|
||||
}
|
||||
|
||||
function EstimateMailDialogFormRoot({
|
||||
onFormSubmit,
|
||||
onCancelClick,
|
||||
|
||||
// #withDialogClose
|
||||
closeDialog,
|
||||
}) {
|
||||
@@ -33,8 +35,6 @@ function EstimateMailDialogFormRoot({
|
||||
const { mailOptions, saleEstimateId, redirectToEstimatesList } =
|
||||
useEstimateMailDialogBoot();
|
||||
|
||||
const history = useHistory();
|
||||
|
||||
const initialValues = transformMailFormToInitialValues(
|
||||
mailOptions,
|
||||
initialFormValues,
|
||||
@@ -52,10 +52,7 @@ function EstimateMailDialogFormRoot({
|
||||
});
|
||||
closeDialog(DialogsName.EstimateMail);
|
||||
setSubmitting(false);
|
||||
|
||||
if (redirectToEstimatesList) {
|
||||
history.push('/estimates');
|
||||
}
|
||||
onFormSubmit && onFormSubmit();
|
||||
})
|
||||
.catch(() => {
|
||||
setSubmitting(false);
|
||||
@@ -64,6 +61,7 @@ function EstimateMailDialogFormRoot({
|
||||
message: 'Something went wrong.',
|
||||
intent: Intent.DANGER,
|
||||
});
|
||||
onCancelClick && onCancelClick();
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user