Files
GNX-mailEnterprise/frontend/node_modules/.cache/babel-loader/154c8caaa8f55395ac1ec84f1d73d4bb85be2b98bab356d68425d29d92e04a5a.json
Iliyan Angelov 9454b6ae19 update
2025-09-22 20:29:41 +03:00

1 line
50 KiB
JSON

{"ast":null,"code":"var _jsxFileName = \"/home/gnx/Desktop/GNX-mailEnterprise/frontend/src/pages/Compose.js\",\n _s = $RefreshSig$();\nimport React, { useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useMutation, useQuery } from 'react-query';\nimport { useNavigate } from 'react-router-dom';\nimport { Send, Paperclip, X, Plus, Bold, Italic, Underline, List, Link as LinkIcon } from 'lucide-react';\nimport { api, endpoints } from '../services/api';\nimport LoadingSpinner from '../components/LoadingSpinner';\nimport toast from 'react-hot-toast';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst Compose = () => {\n _s();\n const [attachments, setAttachments] = useState([]);\n const [isRichText, setIsRichText] = useState(false);\n const navigate = useNavigate();\n const {\n register,\n handleSubmit,\n watch,\n setValue,\n formState: {\n errors\n }\n } = useForm({\n defaultValues: {\n to_emails: [],\n cc_emails: [],\n bcc_emails: [],\n subject: '',\n body_text: '',\n body_html: ''\n }\n });\n const {\n data: templates\n } = useQuery('templates', () => api.get(endpoints.templates).then(res => res.data.results));\n const {\n data: signatures\n } = useQuery('signatures', () => api.get(endpoints.signatures).then(res => res.data.results));\n const sendEmailMutation = useMutation(data => api.post(endpoints.sendEmail, data), {\n onSuccess: () => {\n toast.success('Email sent successfully!');\n navigate('/inbox');\n },\n onError: error => {\n toast.error('Failed to send email');\n console.error(error);\n }\n });\n const onSubmit = async data => {\n const formData = new FormData();\n\n // Filter out empty email addresses\n const toEmails = data.to_emails.filter(email => email.trim() !== '');\n const ccEmails = (data.cc_emails || []).filter(email => email.trim() !== '');\n const bccEmails = (data.bcc_emails || []).filter(email => email.trim() !== '');\n\n // Add email data\n formData.append('subject', data.subject);\n formData.append('to_emails', JSON.stringify(toEmails));\n formData.append('cc_emails', JSON.stringify(ccEmails));\n formData.append('bcc_emails', JSON.stringify(bccEmails));\n formData.append('body_text', data.body_text);\n formData.append('body_html', data.body_html || '');\n formData.append('priority', data.priority || 'normal');\n\n // Add attachments\n attachments.forEach(file => {\n formData.append('attachments', file);\n });\n sendEmailMutation.mutate(formData);\n };\n const handleAttachmentChange = e => {\n const files = Array.from(e.target.files);\n setAttachments(prev => [...prev, ...files]);\n };\n const removeAttachment = index => {\n setAttachments(prev => prev.filter((_, i) => i !== index));\n };\n const addRecipient = type => {\n const currentValue = watch(type);\n setValue(type, [...currentValue, '']);\n };\n const updateRecipient = (type, index, value) => {\n const currentValue = watch(type);\n const newValue = [...currentValue];\n newValue[index] = value;\n setValue(type, newValue);\n };\n const removeRecipient = (type, index) => {\n const currentValue = watch(type);\n setValue(type, currentValue.filter((_, i) => i !== index));\n };\n const RecipientField = ({\n type,\n label,\n placeholder\n }) => {\n const recipients = watch(type) || [];\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-2\",\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n className: \"block text-sm font-medium text-gray-700\",\n children: label\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 9\n }, this), recipients.map((recipient, index) => /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center space-x-2\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"email\",\n value: recipient,\n onChange: e => updateRecipient(type, index, e.target.value),\n placeholder: placeholder,\n className: \"input flex-1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n onClick: () => removeRecipient(type, index),\n className: \"text-gray-400 hover:text-red-500\",\n children: /*#__PURE__*/_jsxDEV(X, {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 13\n }, this)]\n }, index, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n onClick: () => addRecipient(type),\n className: \"text-sm text-primary-600 hover:text-primary-500 flex items-center\",\n children: [/*#__PURE__*/_jsxDEV(Plus, {\n className: \"h-4 w-4 mr-1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 11\n }, this), \"Add \", label.toLowerCase()]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 143,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this);\n };\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-w-4xl mx-auto space-y-6\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"md:flex md:items-center md:justify-between\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-1 min-w-0\",\n children: /*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"text-2xl font-bold leading-7 text-gray-900 sm:text-3xl sm:truncate\",\n children: \"Compose Email\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 160,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSubmit(onSubmit),\n className: \"space-y-6\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card-body space-y-6\",\n children: [/*#__PURE__*/_jsxDEV(RecipientField, {\n type: \"to_emails\",\n label: \"To\",\n placeholder: \"Enter email address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(RecipientField, {\n type: \"cc_emails\",\n label: \"Cc\",\n placeholder: \"Enter email address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(RecipientField, {\n type: \"bcc_emails\",\n label: \"Bcc\",\n placeholder: \"Enter email address\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n htmlFor: \"subject\",\n className: \"block text-sm font-medium text-gray-700\",\n children: \"Subject\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n ...register('subject', {\n required: 'Subject is required'\n }),\n type: \"text\",\n className: `input ${errors.subject ? 'input-error' : ''}`,\n placeholder: \"Enter subject\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 15\n }, this), errors.subject && /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"mt-1 text-sm text-red-600\",\n children: errors.subject.message\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"Attachments\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n className: \"btn-secondary cursor-pointer\",\n children: [/*#__PURE__*/_jsxDEV(Paperclip, {\n className: \"h-4 w-4 mr-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 19\n }, this), \"Attach Files\", /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"file\",\n multiple: true,\n onChange: handleAttachmentChange,\n className: \"hidden\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 17\n }, this), attachments.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-wrap gap-2\",\n children: attachments.map((file, index) => /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center bg-gray-100 rounded-md px-3 py-1\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-sm text-gray-700\",\n children: file.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 25\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n onClick: () => removeAttachment(index),\n className: \"ml-2 text-gray-400 hover:text-red-500\",\n children: /*#__PURE__*/_jsxDEV(X, {\n className: \"h-3 w-3\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 25\n }, this)]\n }, index, true, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 23\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center justify-between mb-2\",\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n className: \"block text-sm font-medium text-gray-700\",\n children: \"Message\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 242,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center space-x-2\",\n children: /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n onClick: () => setIsRichText(!isRichText),\n className: `text-sm px-3 py-1 rounded-md ${isRichText ? 'bg-primary-100 text-primary-700' : 'bg-gray-100 text-gray-700'}`,\n children: \"Rich Text\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 15\n }, this), isRichText ? /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"border border-gray-300 rounded-md\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center space-x-2 p-2 border-b border-gray-300 bg-gray-50\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n className: \"p-1 hover:bg-gray-200 rounded\",\n children: /*#__PURE__*/_jsxDEV(Bold, {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n className: \"p-1 hover:bg-gray-200 rounded\",\n children: /*#__PURE__*/_jsxDEV(Italic, {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n className: \"p-1 hover:bg-gray-200 rounded\",\n children: /*#__PURE__*/_jsxDEV(Underline, {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n className: \"p-1 hover:bg-gray-200 rounded\",\n children: /*#__PURE__*/_jsxDEV(List, {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 273,\n columnNumber: 21\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n className: \"p-1 hover:bg-gray-200 rounded\",\n children: /*#__PURE__*/_jsxDEV(LinkIcon, {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 21\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"textarea\", {\n ...register('body_html'),\n rows: 12,\n className: \"w-full p-3 border-0 focus:ring-0 resize-none\",\n placeholder: \"Write your message...\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 17\n }, this) : /*#__PURE__*/_jsxDEV(\"textarea\", {\n ...register('body_text', {\n required: 'Message is required'\n }),\n rows: 12,\n className: `input ${errors.body_text ? 'input-error' : ''}`,\n placeholder: \"Write your message...\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 17\n }, this), errors.body_text && /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"mt-1 text-sm text-red-600\",\n children: errors.body_text.message\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n htmlFor: \"priority\",\n className: \"block text-sm font-medium text-gray-700\",\n children: \"Priority\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 302,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n ...register('priority'),\n className: \"input\",\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"normal\",\n children: \"Normal\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 309,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"option\", {\n value: \"high\",\n children: \"High\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 310,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"option\", {\n value: \"low\",\n children: \"Low\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 305,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 301,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"card-footer\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center justify-between\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n className: \"btn-secondary\",\n onClick: () => navigate('/inbox'),\n children: \"Cancel\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 319,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"button\",\n className: \"btn-secondary\",\n children: \"Save Draft\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 326,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 318,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n type: \"submit\",\n disabled: sendEmailMutation.isLoading,\n className: \"btn-primary\",\n children: [sendEmailMutation.isLoading ? /*#__PURE__*/_jsxDEV(LoadingSpinner, {\n size: \"sm\",\n className: \"mr-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 19\n }, this) : /*#__PURE__*/_jsxDEV(Send, {\n className: \"h-4 w-4 mr-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 341,\n columnNumber: 19\n }, this), \"Send\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 5\n }, this);\n};\n_s(Compose, \"9/+2ai8APFJomeBWyFzKCtCQm/8=\", false, function () {\n return [useNavigate, useForm, useQuery, useQuery, useMutation];\n});\n_c = Compose;\nexport default Compose;\nvar _c;\n$RefreshReg$(_c, \"Compose\");","map":{"version":3,"names":["React","useState","useForm","useMutation","useQuery","useNavigate","Send","Paperclip","X","Plus","Bold","Italic","Underline","List","Link","LinkIcon","api","endpoints","LoadingSpinner","toast","jsxDEV","_jsxDEV","Compose","_s","attachments","setAttachments","isRichText","setIsRichText","navigate","register","handleSubmit","watch","setValue","formState","errors","defaultValues","to_emails","cc_emails","bcc_emails","subject","body_text","body_html","data","templates","get","then","res","results","signatures","sendEmailMutation","post","sendEmail","onSuccess","success","onError","error","console","onSubmit","formData","FormData","toEmails","filter","email","trim","ccEmails","bccEmails","append","JSON","stringify","priority","forEach","file","mutate","handleAttachmentChange","e","files","Array","from","target","prev","removeAttachment","index","_","i","addRecipient","type","currentValue","updateRecipient","value","newValue","removeRecipient","RecipientField","label","placeholder","recipients","className","children","fileName","_jsxFileName","lineNumber","columnNumber","map","recipient","onChange","onClick","toLowerCase","htmlFor","required","message","multiple","length","name","rows","disabled","isLoading","size","_c","$RefreshReg$"],"sources":["/home/gnx/Desktop/GNX-mailEnterprise/frontend/src/pages/Compose.js"],"sourcesContent":["import React, { useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useMutation, useQuery } from 'react-query';\nimport { useNavigate } from 'react-router-dom';\nimport { \n Send, \n Paperclip, \n X, \n Plus,\n Bold,\n Italic,\n Underline,\n List,\n Link as LinkIcon\n} from 'lucide-react';\nimport { api, endpoints } from '../services/api';\nimport LoadingSpinner from '../components/LoadingSpinner';\nimport toast from 'react-hot-toast';\n\nconst Compose = () => {\n const [attachments, setAttachments] = useState([]);\n const [isRichText, setIsRichText] = useState(false);\n const navigate = useNavigate();\n\n const {\n register,\n handleSubmit,\n watch,\n setValue,\n formState: { errors },\n } = useForm({\n defaultValues: {\n to_emails: [],\n cc_emails: [],\n bcc_emails: [],\n subject: '',\n body_text: '',\n body_html: '',\n },\n });\n\n const { data: templates } = useQuery(\n 'templates',\n () => api.get(endpoints.templates).then(res => res.data.results)\n );\n\n const { data: signatures } = useQuery(\n 'signatures',\n () => api.get(endpoints.signatures).then(res => res.data.results)\n );\n\n const sendEmailMutation = useMutation(\n (data) => api.post(endpoints.sendEmail, data),\n {\n onSuccess: () => {\n toast.success('Email sent successfully!');\n navigate('/inbox');\n },\n onError: (error) => {\n toast.error('Failed to send email');\n console.error(error);\n },\n }\n );\n\n const onSubmit = async (data) => {\n const formData = new FormData();\n \n // Filter out empty email addresses\n const toEmails = data.to_emails.filter(email => email.trim() !== '');\n const ccEmails = (data.cc_emails || []).filter(email => email.trim() !== '');\n const bccEmails = (data.bcc_emails || []).filter(email => email.trim() !== '');\n \n // Add email data\n formData.append('subject', data.subject);\n formData.append('to_emails', JSON.stringify(toEmails));\n formData.append('cc_emails', JSON.stringify(ccEmails));\n formData.append('bcc_emails', JSON.stringify(bccEmails));\n formData.append('body_text', data.body_text);\n formData.append('body_html', data.body_html || '');\n formData.append('priority', data.priority || 'normal');\n \n // Add attachments\n attachments.forEach((file) => {\n formData.append('attachments', file);\n });\n\n sendEmailMutation.mutate(formData);\n };\n\n const handleAttachmentChange = (e) => {\n const files = Array.from(e.target.files);\n setAttachments(prev => [...prev, ...files]);\n };\n\n const removeAttachment = (index) => {\n setAttachments(prev => prev.filter((_, i) => i !== index));\n };\n\n const addRecipient = (type) => {\n const currentValue = watch(type);\n setValue(type, [...currentValue, '']);\n };\n\n const updateRecipient = (type, index, value) => {\n const currentValue = watch(type);\n const newValue = [...currentValue];\n newValue[index] = value;\n setValue(type, newValue);\n };\n\n const removeRecipient = (type, index) => {\n const currentValue = watch(type);\n setValue(type, currentValue.filter((_, i) => i !== index));\n };\n\n const RecipientField = ({ type, label, placeholder }) => {\n const recipients = watch(type) || [];\n \n return (\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium text-gray-700\">\n {label}\n </label>\n {recipients.map((recipient, index) => (\n <div key={index} className=\"flex items-center space-x-2\">\n <input\n type=\"email\"\n value={recipient}\n onChange={(e) => updateRecipient(type, index, e.target.value)}\n placeholder={placeholder}\n className=\"input flex-1\"\n />\n <button\n type=\"button\"\n onClick={() => removeRecipient(type, index)}\n className=\"text-gray-400 hover:text-red-500\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n </div>\n ))}\n <button\n type=\"button\"\n onClick={() => addRecipient(type)}\n className=\"text-sm text-primary-600 hover:text-primary-500 flex items-center\"\n >\n <Plus className=\"h-4 w-4 mr-1\" />\n Add {label.toLowerCase()}\n </button>\n </div>\n );\n };\n\n return (\n <div className=\"max-w-4xl mx-auto space-y-6\">\n {/* Header */}\n <div className=\"md:flex md:items-center md:justify-between\">\n <div className=\"flex-1 min-w-0\">\n <h2 className=\"text-2xl font-bold leading-7 text-gray-900 sm:text-3xl sm:truncate\">\n Compose Email\n </h2>\n </div>\n </div>\n\n <form onSubmit={handleSubmit(onSubmit)} className=\"space-y-6\">\n <div className=\"card\">\n <div className=\"card-body space-y-6\">\n {/* Recipients */}\n <RecipientField \n type=\"to_emails\" \n label=\"To\" \n placeholder=\"Enter email address\"\n />\n \n <RecipientField \n type=\"cc_emails\" \n label=\"Cc\" \n placeholder=\"Enter email address\"\n />\n \n <RecipientField \n type=\"bcc_emails\" \n label=\"Bcc\" \n placeholder=\"Enter email address\"\n />\n\n {/* Subject */}\n <div>\n <label htmlFor=\"subject\" className=\"block text-sm font-medium text-gray-700\">\n Subject\n </label>\n <input\n {...register('subject', { required: 'Subject is required' })}\n type=\"text\"\n className={`input ${errors.subject ? 'input-error' : ''}`}\n placeholder=\"Enter subject\"\n />\n {errors.subject && (\n <p className=\"mt-1 text-sm text-red-600\">{errors.subject.message}</p>\n )}\n </div>\n\n {/* Attachments */}\n <div>\n <label className=\"block text-sm font-medium text-gray-700 mb-2\">\n Attachments\n </label>\n <div className=\"flex items-center space-x-4\">\n <label className=\"btn-secondary cursor-pointer\">\n <Paperclip className=\"h-4 w-4 mr-2\" />\n Attach Files\n <input\n type=\"file\"\n multiple\n onChange={handleAttachmentChange}\n className=\"hidden\"\n />\n </label>\n {attachments.length > 0 && (\n <div className=\"flex flex-wrap gap-2\">\n {attachments.map((file, index) => (\n <div key={index} className=\"flex items-center bg-gray-100 rounded-md px-3 py-1\">\n <span className=\"text-sm text-gray-700\">{file.name}</span>\n <button\n type=\"button\"\n onClick={() => removeAttachment(index)}\n className=\"ml-2 text-gray-400 hover:text-red-500\"\n >\n <X className=\"h-3 w-3\" />\n </button>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n\n {/* Message Body */}\n <div>\n <div className=\"flex items-center justify-between mb-2\">\n <label className=\"block text-sm font-medium text-gray-700\">\n Message\n </label>\n <div className=\"flex items-center space-x-2\">\n <button\n type=\"button\"\n onClick={() => setIsRichText(!isRichText)}\n className={`text-sm px-3 py-1 rounded-md ${\n isRichText \n ? 'bg-primary-100 text-primary-700' \n : 'bg-gray-100 text-gray-700'\n }`}\n >\n Rich Text\n </button>\n </div>\n </div>\n \n {isRichText ? (\n <div className=\"border border-gray-300 rounded-md\">\n {/* Rich text toolbar */}\n <div className=\"flex items-center space-x-2 p-2 border-b border-gray-300 bg-gray-50\">\n <button type=\"button\" className=\"p-1 hover:bg-gray-200 rounded\">\n <Bold className=\"h-4 w-4\" />\n </button>\n <button type=\"button\" className=\"p-1 hover:bg-gray-200 rounded\">\n <Italic className=\"h-4 w-4\" />\n </button>\n <button type=\"button\" className=\"p-1 hover:bg-gray-200 rounded\">\n <Underline className=\"h-4 w-4\" />\n </button>\n <button type=\"button\" className=\"p-1 hover:bg-gray-200 rounded\">\n <List className=\"h-4 w-4\" />\n </button>\n <button type=\"button\" className=\"p-1 hover:bg-gray-200 rounded\">\n <LinkIcon className=\"h-4 w-4\" />\n </button>\n </div>\n <textarea\n {...register('body_html')}\n rows={12}\n className=\"w-full p-3 border-0 focus:ring-0 resize-none\"\n placeholder=\"Write your message...\"\n />\n </div>\n ) : (\n <textarea\n {...register('body_text', { required: 'Message is required' })}\n rows={12}\n className={`input ${errors.body_text ? 'input-error' : ''}`}\n placeholder=\"Write your message...\"\n />\n )}\n {errors.body_text && (\n <p className=\"mt-1 text-sm text-red-600\">{errors.body_text.message}</p>\n )}\n </div>\n\n {/* Priority */}\n <div>\n <label htmlFor=\"priority\" className=\"block text-sm font-medium text-gray-700\">\n Priority\n </label>\n <select\n {...register('priority')}\n className=\"input\"\n >\n <option value=\"normal\">Normal</option>\n <option value=\"high\">High</option>\n <option value=\"low\">Low</option>\n </select>\n </div>\n </div>\n\n <div className=\"card-footer\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center space-x-4\">\n <button\n type=\"button\"\n className=\"btn-secondary\"\n onClick={() => navigate('/inbox')}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n className=\"btn-secondary\"\n >\n Save Draft\n </button>\n </div>\n <button\n type=\"submit\"\n disabled={sendEmailMutation.isLoading}\n className=\"btn-primary\"\n >\n {sendEmailMutation.isLoading ? (\n <LoadingSpinner size=\"sm\" className=\"mr-2\" />\n ) : (\n <Send className=\"h-4 w-4 mr-2\" />\n )}\n Send\n </button>\n </div>\n </div>\n </div>\n </form>\n </div>\n );\n};\n\nexport default Compose;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}