cc and bcc
This commit is contained in:
@@ -21,6 +21,8 @@ export const useNewMessage = () => {
|
||||
const { email: userEmail } = useAuthStore();
|
||||
|
||||
const [toEmails, setToEmails] = useState<string[]>([]);
|
||||
const [ccEmails, setCcEmails] = useState<string[]>([]);
|
||||
const [bccEmails, setBccEmails] = useState<string[]>([]);
|
||||
const [subject, setSubject] = useState("");
|
||||
const [content, setContent] = useState("");
|
||||
const [priority, setPriority] = useState("");
|
||||
@@ -48,6 +50,15 @@ export const useNewMessage = () => {
|
||||
const toEmailsList =
|
||||
draftDetail.to?.map((recipient) => recipient.address) || [];
|
||||
setToEmails(toEmailsList);
|
||||
|
||||
const ccEmailsList =
|
||||
draftDetail.cc?.map((recipient) => recipient.address) || [];
|
||||
setCcEmails(ccEmailsList);
|
||||
|
||||
const bccEmailsList =
|
||||
draftDetail.bcc?.map((recipient) => recipient.address) || [];
|
||||
setBccEmails(bccEmailsList);
|
||||
|
||||
setSubject(draftDetail.subject || "");
|
||||
|
||||
const draftWithContent = (draftDetail as unknown) as {
|
||||
@@ -96,6 +107,40 @@ export const useNewMessage = () => {
|
||||
setToEmails(toEmails.filter((email) => email !== emailToRemove));
|
||||
};
|
||||
|
||||
const addCcEmail = (email: string) => {
|
||||
if (!isValidEmail(email)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (ccEmails.includes(email)) {
|
||||
toast("این ایمیل قبلاً اضافه شده است", "error");
|
||||
return;
|
||||
}
|
||||
|
||||
setCcEmails([...ccEmails, email]);
|
||||
};
|
||||
|
||||
const removeCcEmail = (emailToRemove: string) => {
|
||||
setCcEmails(ccEmails.filter((email) => email !== emailToRemove));
|
||||
};
|
||||
|
||||
const addBccEmail = (email: string) => {
|
||||
if (!isValidEmail(email)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (bccEmails.includes(email)) {
|
||||
toast("این ایمیل قبلاً اضافه شده است", "error");
|
||||
return;
|
||||
}
|
||||
|
||||
setBccEmails([...bccEmails, email]);
|
||||
};
|
||||
|
||||
const removeBccEmail = (emailToRemove: string) => {
|
||||
setBccEmails(bccEmails.filter((email) => email !== emailToRemove));
|
||||
};
|
||||
|
||||
const parseEmailAddresses = (emails: string[]) => {
|
||||
return emails
|
||||
.filter((email) => email.length > 0)
|
||||
@@ -104,6 +149,8 @@ export const useNewMessage = () => {
|
||||
|
||||
const resetForm = () => {
|
||||
setToEmails([]);
|
||||
setCcEmails([]);
|
||||
setBccEmails([]);
|
||||
setSubject("");
|
||||
setContent("");
|
||||
setPriority("");
|
||||
@@ -141,6 +188,8 @@ export const useNewMessage = () => {
|
||||
const textDirection = detectTextDirection(contentString);
|
||||
const draftUpdateData = {
|
||||
to: parseEmailAddresses(toEmails),
|
||||
...(ccEmails.length > 0 && { cc: parseEmailAddresses(ccEmails) }),
|
||||
...(bccEmails.length > 0 && { bcc: parseEmailAddresses(bccEmails) }),
|
||||
subject,
|
||||
html: `<div dir="${textDirection}" style="text-align: start; unicode-bidi: plaintext; font-family: 'Irancell', 'Vazirmatn', sans-serif;">${contentString}</div>`,
|
||||
text: contentString.replace(/<[^>]*>/g, ""),
|
||||
@@ -193,6 +242,8 @@ export const useNewMessage = () => {
|
||||
const emailData: SendEmailDto = {
|
||||
from: { address: userEmail || "sender@example.com" },
|
||||
to: parseEmailAddresses(toEmails),
|
||||
...(ccEmails.length > 0 && { cc: parseEmailAddresses(ccEmails) }),
|
||||
...(bccEmails.length > 0 && { bcc: parseEmailAddresses(bccEmails) }),
|
||||
subject,
|
||||
html: `<div dir="${textDirection}" style="text-align: start; unicode-bidi: plaintext; font-family: 'Irancell', 'Vazirmatn', sans-serif;">${contentString}</div>`,
|
||||
text: contentString.replace(/<[^>]*>/g, ""),
|
||||
@@ -231,6 +282,8 @@ export const useNewMessage = () => {
|
||||
|
||||
return {
|
||||
toEmails,
|
||||
ccEmails,
|
||||
bccEmails,
|
||||
subject,
|
||||
content,
|
||||
priority,
|
||||
@@ -242,6 +295,10 @@ export const useNewMessage = () => {
|
||||
|
||||
addEmail,
|
||||
removeEmail,
|
||||
addCcEmail,
|
||||
removeCcEmail,
|
||||
addBccEmail,
|
||||
removeBccEmail,
|
||||
setSubject,
|
||||
setContent,
|
||||
setPriority,
|
||||
|
||||
Reference in New Issue
Block a user