diff --git a/packages/webapp/package.json b/packages/webapp/package.json
index c997612b2..670f64eef 100644
--- a/packages/webapp/package.json
+++ b/packages/webapp/package.json
@@ -5,6 +5,7 @@
"dependencies": {
"@bigcapital/utils": "*",
"@bigcapital/pdf-templates": "*",
+ "@bigcapital/email-components": "*",
"@blueprintjs-formik/core": "^0.3.7",
"@blueprintjs-formik/datetime": "^0.3.7",
"@blueprintjs-formik/select": "^0.3.5",
diff --git a/packages/webapp/src/containers/Sales/Estimates/SendMailViewDrawer/SendMailViewReceiptPreview.tsx b/packages/webapp/src/containers/Sales/Estimates/SendMailViewDrawer/SendMailViewReceiptPreview.tsx
new file mode 100644
index 000000000..b6157c16e
--- /dev/null
+++ b/packages/webapp/src/containers/Sales/Estimates/SendMailViewDrawer/SendMailViewReceiptPreview.tsx
@@ -0,0 +1,49 @@
+import { x } from '@xstyled/emotion';
+import { Stack, StackProps } from '@/components';
+
+interface SendMailReceiptProps extends StackProps {
+ children: React.ReactNode;
+}
+
+export function SendMailReceipt({
+ children,
+ ...restProps
+}: SendMailReceiptProps) {
+ return (
+
+ );
+}
+
+interface SendMailReceiptCompanyLogoProps extends StackProps {
+ src: string;
+}
+
+function SendMailReceiptCompanyLogo({
+ src,
+ ...props
+}: SendMailReceiptCompanyLogoProps) {
+ return (
+
+ );
+}
+
+SendMailReceipt.CompanyLogo = SendMailReceiptCompanyLogo;
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 34598c1cd..bca408cb5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -484,6 +484,9 @@ importers:
packages/webapp:
dependencies:
+ '@bigcapital/email-components':
+ specifier: '*'
+ version: link:../../shared/email-components
'@bigcapital/pdf-templates':
specifier: '*'
version: link:../../shared/pdf-templates
diff --git a/shared/email-components/src/lib/CreditNoteEmailTemplate.tsx b/shared/email-components/src/lib/CreditNoteEmailTemplate.tsx
index 3bccc11df..bc2341f45 100644
--- a/shared/email-components/src/lib/CreditNoteEmailTemplate.tsx
+++ b/shared/email-components/src/lib/CreditNoteEmailTemplate.tsx
@@ -1,8 +1,8 @@
import {
Button,
Column,
- Container,
Heading,
+ render,
Row,
Section,
Text,
@@ -135,6 +135,15 @@ export const CreditNoteEmailTemplate: React.FC<
);
};
+/**
+ * Renders the estimate mail template to string
+ * @param {EstimatePaymentEmailProps} props
+ * @returns {Promise}
+ */
+export const renderCreditNoteEmailTemplate = (props: CreditNoteEmailProps) => {
+ return render();
+};
+
const containerStyle: CSSProperties = {
backgroundColor: '#fff',
width: '100%',
diff --git a/shared/email-components/src/lib/EstimatePaymentEmail.tsx b/shared/email-components/src/lib/EstimatePaymentEmail.tsx
index 8bc3333bc..562cf76d8 100644
--- a/shared/email-components/src/lib/EstimatePaymentEmail.tsx
+++ b/shared/email-components/src/lib/EstimatePaymentEmail.tsx
@@ -4,6 +4,7 @@ import {
Column,
Container,
Heading,
+ render,
Row,
Section,
Text,
@@ -143,6 +144,17 @@ export const EstimatePaymentEmail: React.FC<
);
};
+/**
+ * Renders the estimate mail template to string
+ * @param {EstimatePaymentEmailProps} props
+ * @returns {Promise}
+ */
+export const renderEstimateEmailTemplate = (
+ props: EstimatePaymentEmailProps
+) => {
+ return render();
+};
+
const headerInfoStyle: CSSProperties = {
textAlign: 'center',
marginBottom: 20,
diff --git a/shared/email-components/src/lib/PaymentReceivedEmailTemplate.tsx b/shared/email-components/src/lib/PaymentReceivedEmailTemplate.tsx
index f502ab4af..a91670506 100644
--- a/shared/email-components/src/lib/PaymentReceivedEmailTemplate.tsx
+++ b/shared/email-components/src/lib/PaymentReceivedEmailTemplate.tsx
@@ -2,6 +2,7 @@ import {
Button,
Container,
Heading,
+ render,
Row,
Section,
Text,
@@ -65,47 +66,58 @@ export const PaymentReceivedEmailTemplate: React.FC<
viewPaymentButtonLabel = 'View Payment',
viewPaymentButtonUrl,
}) => {
- return (
-
-
- {companyLogoUri && (
-
- )}
-
-
- {companyName}
-
-
- {total}
-
-
-
- {paymentNumberLabel?.replace('{paymentNumber}', paymentNumber)}
-
-
+ return (
+
+
+ {companyLogoUri && (
+
+ )}
+
+
+ {companyName}
+
+
+ {total}
+
+
+
+ {paymentNumberLabel?.replace('{paymentNumber}', paymentNumber)}
+
+
+
- {message}
-
-
-
- );
- };
+ {message}
+
+
+
+ );
+};
+
+/**
+ * Renders the payment received mail template to string
+ * @param {EstimatePaymentEmailProps} props
+ * @returns {Promise}
+ */
+export const renderPaymentReceivedEmailTemplate = (
+ props: PaymentReceivedEmailTemplateProps
+) => {
+ return render();
+};
const containerStyle: CSSProperties = {
backgroundColor: '#fff',
diff --git a/shared/email-components/src/lib/ReceiptPaymentEmail.tsx b/shared/email-components/src/lib/ReceiptPaymentEmail.tsx
index e195ff357..00a7dead1 100644
--- a/shared/email-components/src/lib/ReceiptPaymentEmail.tsx
+++ b/shared/email-components/src/lib/ReceiptPaymentEmail.tsx
@@ -1,8 +1,8 @@
import {
Button,
Column,
- Container,
Heading,
+ render,
Row,
Section,
Text,
@@ -148,6 +148,17 @@ export const ReceiptEmailTemplate: React.FC<
);
};
+/**
+ * Renders the sale receipt mail template to string
+ * @param {ReceiptEmailTemplateProps} props
+ * @returns {Promise}
+ */
+export const renderReceiptEmailTemplate = (
+ props: ReceiptEmailTemplateProps
+) => {
+ return render();
+};
+
const headerInfoStyle: CSSProperties = {
textAlign: 'center',
marginBottom: 20,