diff --git a/components/ComposeEmail.tsx b/components/ComposeEmail.tsx index 24b8ab22..f943060c 100644 --- a/components/ComposeEmail.tsx +++ b/components/ComposeEmail.tsx @@ -90,6 +90,7 @@ export default function ComposeEmail({ const [useRichEditor, setUseRichEditor] = useState(false); const [userMessage, setUserMessage] = useState(''); const [quotedContent, setQuotedContent] = useState(''); + const [hasStartedTyping, setHasStartedTyping] = useState(false); useEffect(() => { // When forwarding or replying, use rich editor @@ -130,6 +131,7 @@ export default function ComposeEmail({ const formattedEmail = formatEmailForForward(emailForFormatting); setComposeSubject(formattedEmail.subject); + // The email-formatter already adds proper direction, no need for extra wrappers setQuotedContent(formattedEmail.body); setComposeBody(''); // Clear user message when forwarding } catch (error) { @@ -179,6 +181,7 @@ export default function ComposeEmail({ setShowCc(true); } + // The email-formatter already adds proper direction, no need for extra wrappers setQuotedContent(formattedEmail.body); setComposeBody(''); // Clear user message when replying } catch (error) { @@ -202,10 +205,17 @@ export default function ComposeEmail({ // Handle contentEditable input changes const handleUserMessageChange = () => { if (contentEditableRef.current) { - setUserMessage(contentEditableRef.current.innerHTML); + const content = contentEditableRef.current.innerHTML; + + // Check if this is the initial state or if the user has actually typed something + if (content && content !== '
Write your message here...
') { + setHasStartedTyping(true); + } + + setUserMessage(content); // Combine user message with quoted content for the full email body - const combined = `${contentEditableRef.current.innerHTML}${quotedContent ? quotedContent : ''}`; + const combined = `${content}${quotedContent ? quotedContent : ''}`; setComposeBody(combined); } }; @@ -372,13 +382,27 @@ export default function ComposeEmail({ contentEditable="true" className="w-full p-3 bg-white min-h-[100px] text-gray-900 email-editor" onInput={handleUserMessageChange} - dangerouslySetInnerHTML={userMessage ? { __html: userMessage } : { __html: 'Write your message here...
' }} + onFocus={() => { + // Clear placeholder text when user focuses if they haven't started typing + if (!hasStartedTyping && contentEditableRef.current) { + contentEditableRef.current.innerHTML = ''; + } + }} + onBlur={() => { + // Restore placeholder if user hasn't typed anything + if (!hasStartedTyping && contentEditableRef.current && !contentEditableRef.current.innerHTML.trim()) { + contentEditableRef.current.innerHTML = 'Write your message here...
'; + } + }} + dangerouslySetInnerHTML={hasStartedTyping ? { __html: userMessage } : { __html: 'Write your message here...
' }} + style={{ direction: 'ltr', textAlign: 'left' }} /> {/* Original email content - also editable */} {quotedContent && (${quoteHeader} -${originalContent || 'No content available'}+${originalContent || 'No content available'}