diff --git a/app/builders/messages/message_builder.rb b/app/builders/messages/message_builder.rb
index 2f95615e9..86bcee54e 100644
--- a/app/builders/messages/message_builder.rb
+++ b/app/builders/messages/message_builder.rb
@@ -7,6 +7,7 @@ class Messages::MessageBuilder
@private = params[:private] || false
@conversation = conversation
@user = user
+ @account = conversation.account
@message_type = params[:message_type] || 'outgoing'
@attachments = params[:attachments]
@automation_rule = content_attributes&.dig(:automation_rule_id)
@@ -20,7 +21,9 @@ class Messages::MessageBuilder
@message = @conversation.messages.build(message_params)
process_attachments
process_emails
- process_email_content
+ # When the message has no quoted content, it will just be rendered as a regular message
+ # The frontend is equipped to handle this case
+ process_email_content if @account.feature_enabled?(:quoted_email_reply)
@message.save!
@message
end
diff --git a/app/javascript/dashboard/components-next/message/bubbles/Email/Index.vue b/app/javascript/dashboard/components-next/message/bubbles/Email/Index.vue
index 1eb3cda10..7a4164ded 100644
--- a/app/javascript/dashboard/components-next/message/bubbles/Email/Index.vue
+++ b/app/javascript/dashboard/components-next/message/bubbles/Email/Index.vue
@@ -6,6 +6,7 @@ import { allowedCssProperties } from 'lettersanitizer';
import Icon from 'next/icon/Icon.vue';
import { EmailQuoteExtractor } from 'dashboard/helper/emailQuoteExtractor.js';
+import FormattedContent from 'next/message/bubbles/Text/FormattedContent.vue';
import BaseBubble from 'next/message/bubbles/Base.vue';
import AttachmentChips from 'next/message/chips/AttachmentChips.vue';
import EmailMeta from './EmailMeta.vue';
@@ -46,6 +47,22 @@ const originalEmailHtml = computed(
originalEmailText.value
);
+const hasEmailContent = computed(() => {
+ return (
+ contentAttributes?.value?.email?.textContent?.full ||
+ contentAttributes?.value?.email?.htmlContent?.full
+ );
+});
+
+const messageContent = computed(() => {
+ // If translations exist and we're showing translations (not original)
+ if (hasTranslations.value && !renderOriginal.value) {
+ return translationContent.value;
+ }
+ // Otherwise show original content
+ return content.value;
+});
+
const textToShow = computed(() => {
// If translations exist and we're showing translations (not original)
if (hasTranslations.value && !renderOriginal.value) {
@@ -126,30 +143,37 @@ const handleSeeOriginal = () => {
{{ $t('EMAIL_HEADER.EXPAND') }}
-
-
+
+
+
+