From de1b7f132ca94610352b9c33761606e1588eccb3 Mon Sep 17 00:00:00 2001 From: Ahmed Bouhuolia Date: Tue, 26 Dec 2023 15:52:38 +0200 Subject: [PATCH] feat(webapp): send mail notification dialogs --- .../src/components/DialogsContainer.tsx | 8 ++++ packages/webapp/src/constants/dialogs.ts | 4 ++ .../EstimateDetailActionsBar.tsx | 14 ++++++ .../InvoiceDetailActionsBar.tsx | 12 +++++ .../PaymentReceiveActionsBar.tsx | 12 +++++ .../ReceiptDetailActionBar.tsx | 11 +++++ .../EstimateMailDialog/EstimateMailDialog.tsx | 36 +++++++++++++++ .../EstimateMailDialogBoot.tsx | 43 ++++++++++++++++++ .../EstimateMailDialogContent.tsx | 18 ++++++++ .../EstimateMailDialogForm.tsx | 31 +++++++++++++ .../Estimates/EstimateMailDialog/index.ts | 1 + .../InvoiceMailDialog/InvoiceMailDialog.tsx | 36 +++++++++++++++ .../InvoiceMailDialogBoot.tsx | 43 ++++++++++++++++++ .../InvoiceMailDialogContent.tsx | 17 +++++++ .../InvoiceMailDialogForm.tsx | 29 ++++++++++++ .../Sales/Invoices/InvoiceMailDialog/index.ts | 1 + .../PaymentMailDialog/PaymentMailDialog.tsx | 36 +++++++++++++++ .../PaymentMailDialogBoot.tsx | 44 +++++++++++++++++++ .../PaymentMailDialogContent.tsx | 17 +++++++ .../PaymentMailDialogForm.tsx | 29 ++++++++++++ .../PaymentMailDialog/index.ts | 1 + .../ReceiptMailDialog/ReceiptMailDialog.tsx | 36 +++++++++++++++ .../ReceiptMailDialogBoot.tsx | 44 +++++++++++++++++++ .../ReceiptMailDialogContent.tsx | 18 ++++++++ .../ReceiptMailDialogForm.tsx | 29 ++++++++++++ .../Receipts/ReceiptMailDialog/index.tsx | 1 + .../SendMailNotificationForm.tsx | 36 +++++++++++++++ .../containers/SendMailNotification/index.ts | 1 + packages/webapp/src/hooks/query/estimates.tsx | 30 +++++++++++++ packages/webapp/src/hooks/query/invoices.tsx | 31 +++++++++++++ .../src/hooks/query/paymentReceives.tsx | 31 +++++++++++++ packages/webapp/src/hooks/query/receipts.tsx | 33 ++++++++++++++ packages/webapp/src/hooks/query/types.tsx | 4 ++ 33 files changed, 737 insertions(+) create mode 100644 packages/webapp/src/containers/Sales/Estimates/EstimateMailDialog/EstimateMailDialog.tsx create mode 100644 packages/webapp/src/containers/Sales/Estimates/EstimateMailDialog/EstimateMailDialogBoot.tsx create mode 100644 packages/webapp/src/containers/Sales/Estimates/EstimateMailDialog/EstimateMailDialogContent.tsx create mode 100644 packages/webapp/src/containers/Sales/Estimates/EstimateMailDialog/EstimateMailDialogForm.tsx create mode 100644 packages/webapp/src/containers/Sales/Estimates/EstimateMailDialog/index.ts create mode 100644 packages/webapp/src/containers/Sales/Invoices/InvoiceMailDialog/InvoiceMailDialog.tsx create mode 100644 packages/webapp/src/containers/Sales/Invoices/InvoiceMailDialog/InvoiceMailDialogBoot.tsx create mode 100644 packages/webapp/src/containers/Sales/Invoices/InvoiceMailDialog/InvoiceMailDialogContent.tsx create mode 100644 packages/webapp/src/containers/Sales/Invoices/InvoiceMailDialog/InvoiceMailDialogForm.tsx create mode 100644 packages/webapp/src/containers/Sales/Invoices/InvoiceMailDialog/index.ts create mode 100644 packages/webapp/src/containers/Sales/PaymentReceives/PaymentMailDialog/PaymentMailDialog.tsx create mode 100644 packages/webapp/src/containers/Sales/PaymentReceives/PaymentMailDialog/PaymentMailDialogBoot.tsx create mode 100644 packages/webapp/src/containers/Sales/PaymentReceives/PaymentMailDialog/PaymentMailDialogContent.tsx create mode 100644 packages/webapp/src/containers/Sales/PaymentReceives/PaymentMailDialog/PaymentMailDialogForm.tsx create mode 100644 packages/webapp/src/containers/Sales/PaymentReceives/PaymentMailDialog/index.ts create mode 100644 packages/webapp/src/containers/Sales/Receipts/ReceiptMailDialog/ReceiptMailDialog.tsx create mode 100644 packages/webapp/src/containers/Sales/Receipts/ReceiptMailDialog/ReceiptMailDialogBoot.tsx create mode 100644 packages/webapp/src/containers/Sales/Receipts/ReceiptMailDialog/ReceiptMailDialogContent.tsx create mode 100644 packages/webapp/src/containers/Sales/Receipts/ReceiptMailDialog/ReceiptMailDialogForm.tsx create mode 100644 packages/webapp/src/containers/Sales/Receipts/ReceiptMailDialog/index.tsx create mode 100644 packages/webapp/src/containers/SendMailNotification/SendMailNotificationForm.tsx create mode 100644 packages/webapp/src/containers/SendMailNotification/index.ts diff --git a/packages/webapp/src/components/DialogsContainer.tsx b/packages/webapp/src/components/DialogsContainer.tsx index 2ee579980..b301e0492 100644 --- a/packages/webapp/src/components/DialogsContainer.tsx +++ b/packages/webapp/src/components/DialogsContainer.tsx @@ -47,6 +47,10 @@ import ProjectInvoicingFormDialog from '@/containers/Projects/containers/Project import ProjectBillableEntriesFormDialog from '@/containers/Projects/containers/ProjectBillableEntriesFormDialog'; import TaxRateFormDialog from '@/containers/TaxRates/dialogs/TaxRateFormDialog/TaxRateFormDialog'; import { DialogsName } from '@/constants/dialogs'; +import InvoiceMailDialog from '@/containers/Sales/Invoices/InvoiceMailDialog/InvoiceMailDialog'; +import EstimateMailDialog from '@/containers/Sales/Estimates/EstimateMailDialog/EstimateMailDialog'; +import ReceiptMailDialog from '@/containers/Sales/Receipts/ReceiptMailDialog/ReceiptMailDialog'; +import PaymentMailDialog from '@/containers/Sales/PaymentReceives/PaymentMailDialog/PaymentMailDialog'; /** * Dialogs container. @@ -137,6 +141,10 @@ export default function DialogsContainer() { dialogName={DialogsName.ProjectBillableEntriesForm} /> + + + + ); } diff --git a/packages/webapp/src/constants/dialogs.ts b/packages/webapp/src/constants/dialogs.ts index 115c25af2..5378efb24 100644 --- a/packages/webapp/src/constants/dialogs.ts +++ b/packages/webapp/src/constants/dialogs.ts @@ -48,4 +48,8 @@ export enum DialogsName { ProjectBillableEntriesForm = 'project-billable-entries', InvoiceNumberSettings = 'InvoiceNumberSettings', TaxRateForm = 'tax-rate-form', + InvoiceMail = 'invoice-mail', + EstimateMail = 'estimate-mail', + ReceiptMail = 'receipt-mail', + PaymentMail = 'payment-mail', } diff --git a/packages/webapp/src/containers/Drawers/EstimateDetailDrawer/EstimateDetailActionsBar.tsx b/packages/webapp/src/containers/Drawers/EstimateDetailDrawer/EstimateDetailActionsBar.tsx index 6f1ca3e91..65821afd8 100644 --- a/packages/webapp/src/containers/Drawers/EstimateDetailDrawer/EstimateDetailActionsBar.tsx +++ b/packages/webapp/src/containers/Drawers/EstimateDetailDrawer/EstimateDetailActionsBar.tsx @@ -26,6 +26,7 @@ import { import { compose } from '@/utils'; import { DRAWERS } from '@/constants/drawers'; +import { DialogsName } from '@/constants/dialogs'; /** * Estimate read-only details actions bar of the drawer. @@ -65,6 +66,10 @@ function EstimateDetailActionsBar({ const handleNotifyViaSMS = () => { openDialog('notify-estimate-via-sms', { estimateId }); }; + // Handles the estimate mail dialog. + const handleMailEstimate = () => { + openDialog(DialogsName.EstimateMail, { estimateId }); + }; return ( @@ -86,6 +91,15 @@ function EstimateDetailActionsBar({ onClick={handlePrintEstimate} /> + + +