import { FC } from 'react' import { MessageDetail } from '../types/Types' import { MailboxEnum } from '../enum/Enum' interface BccRecipientsProps { messageDetail: MessageDetail userEmail: string | null mailboxName: MailboxEnum } const BccRecipients: FC = ({ messageDetail, userEmail, mailboxName }) => { // If userEmail is not available, we can't determine BCC status if (!userEmail || userEmail.trim() === '') { return null } // Check if current user was BCC recipient (for received messages) const isInTo = messageDetail.to?.some(recipient => recipient.address.toLowerCase().trim() === userEmail.toLowerCase().trim() ) || false const isInCc = messageDetail.cc?.some(recipient => recipient.address.toLowerCase().trim() === userEmail.toLowerCase().trim() ) || false // Check if user is explicitly in BCC field OR implicitly (not in to/cc but received) const isExplicitlyInBcc = messageDetail.bcc?.some(recipient => recipient.address.toLowerCase().trim() === userEmail.toLowerCase().trim() ) || false const isInBcc = isExplicitlyInBcc || (!isInTo && !isInCc && mailboxName !== MailboxEnum.SENT) console.log('BCC Debug:', { userEmail, to: messageDetail.to?.map(r => r.address), cc: messageDetail.cc?.map(r => r.address), bcc: messageDetail.bcc?.map(r => r.address), isInTo, isInCc, isExplicitlyInBcc, isInBcc, mailboxName }); // Show BCC notice for received messages if (isInBcc) { return (
شما به عنوان رونوشت مخفی (BCC) این پیام را دریافت کرده‌اید
) } // Show BCC recipients for sent messages if (mailboxName === MailboxEnum.SENT && messageDetail.envelope?.rcpt) { const toAddresses = messageDetail.to?.map(r => r.address.toLowerCase()) || [] const ccAddresses = messageDetail.cc?.map(r => r.address.toLowerCase()) || [] const bccRecipients = messageDetail.envelope.rcpt.filter(rcpt => { const address = rcpt.value.toLowerCase() return !toAddresses.includes(address) && !ccAddresses.includes(address) }) if (bccRecipients.length === 0) { return null } return (
رونوشت مخفی (BCC):
{bccRecipients.map((recipient, index) => (
{recipient.formatted || recipient.value}
))}
) } return null } export default BccRecipients