diff --git a/drizzle/0007_invoice_email_message.sql b/drizzle/0007_invoice_email_message.sql new file mode 100644 index 0000000..86d8beb --- /dev/null +++ b/drizzle/0007_invoice_email_message.sql @@ -0,0 +1,2 @@ +ALTER TABLE "beenvoice_invoice" +ADD COLUMN "emailMessage" varchar(2000); diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index 317af68..bf28b9e 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -50,6 +50,13 @@ "when": 1777338000000, "tag": "0006_pdf_generation_settings", "breakpoints": true + }, + { + "idx": 7, + "version": "7", + "when": 1777339000000, + "tag": "0007_invoice_email_message", + "breakpoints": true } ] } diff --git a/src/app/dashboard/invoices/[id]/send/page.tsx b/src/app/dashboard/invoices/[id]/send/page.tsx index a961040..e25b09f 100644 --- a/src/app/dashboard/invoices/[id]/send/page.tsx +++ b/src/app/dashboard/invoices/[id]/send/page.tsx @@ -54,6 +54,16 @@ function SendEmailPageSkeleton() { ); } +function plainTextToHtml(value: string) { + return value + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'") + .replace(/\n/g, "
"); +} + export default function SendEmailPage() { const params = useParams(); const router = useRouter(); @@ -158,7 +168,7 @@ export default function SendEmailPage() { totalAmount: invoiceData.totalAmount, taxRate: invoiceData.taxRate, currency: invoiceData.currency, - notes: invoiceData.notes, + emailMessage: invoiceData.emailMessage, client: invoiceData.client ? { name: invoiceData.client.name, @@ -197,6 +207,9 @@ export default function SendEmailPage() { const defaultContent = ``; setEmailContent(defaultContent); + setCustomMessage( + invoice.emailMessage ? plainTextToHtml(invoice.emailMessage) : "", + ); setIsInitialized(true); }, [invoice, isInitialized]); @@ -556,7 +569,7 @@ export default function SendEmailPage() { {/* Confirmation Dialog */} - + Send Invoice Email? @@ -582,6 +595,53 @@ export default function SendEmailPage() { )} +
+ + + + + Edit Email Note + + + + + + + + + + + Email Preview + + + + + + +