diff --git a/src/backend/core/api/serializers.py b/src/backend/core/api/serializers.py index e3895720..2d8ed009 100644 --- a/src/backend/core/api/serializers.py +++ b/src/backend/core/api/serializers.py @@ -608,7 +608,13 @@ class MessageRecipientSerializer(serializers.ModelSerializer): class Meta: model = models.MessageRecipient - fields = ["contact", "delivery_status", "delivery_message", "retry_at", "delivered_at"] + fields = [ + "contact", + "delivery_status", + "delivery_message", + "retry_at", + "delivered_at", + ] class MessageSerializer(serializers.ModelSerializer): diff --git a/src/backend/core/enums.py b/src/backend/core/enums.py index 5a06ce69..b159746b 100644 --- a/src/backend/core/enums.py +++ b/src/backend/core/enums.py @@ -122,5 +122,9 @@ class MessageTemplateTypeChoices(models.IntegerChoices): EML_SUPPORTED_MIME_TYPES = ["message/rfc822", "application/eml", "text/plain"] -MBOX_SUPPORTED_MIME_TYPES = ["application/octet-stream", "text/plain", "application/mbox"] +MBOX_SUPPORTED_MIME_TYPES = [ + "application/octet-stream", + "text/plain", + "application/mbox", +] ARCHIVE_SUPPORTED_MIME_TYPES = EML_SUPPORTED_MIME_TYPES + MBOX_SUPPORTED_MIME_TYPES diff --git a/src/frontend/src/features/layouts/components/thread-view/components/thread-message/index.tsx b/src/frontend/src/features/layouts/components/thread-view/components/thread-message/index.tsx index 34887036..d7caa1b8 100644 --- a/src/frontend/src/features/layouts/components/thread-view/components/thread-message/index.tsx +++ b/src/frontend/src/features/layouts/components/thread-view/components/thread-message/index.tsx @@ -28,10 +28,9 @@ export const ThreadMessage = forwardRef( ({ message, isLatest, draftMessage, ...props }, ref) => { const { t, i18n } = useTranslation() const getReplyFormMode = () => { + if (draftMessage?.is_draft) return 'reply'; if (!message.is_draft || message.is_trashed) return null; - if (!draftMessage) return 'new'; - if (draftMessage.is_draft) return 'reply'; - return null; + return 'new'; } const [replyFormMode, setReplyFormMode] = useState(getReplyFormMode) const showReplyForm = replyFormMode !== null; diff --git a/src/frontend/src/features/layouts/components/thread-view/index.tsx b/src/frontend/src/features/layouts/components/thread-view/index.tsx index 392094dd..646d20b9 100644 --- a/src/frontend/src/features/layouts/components/thread-view/index.tsx +++ b/src/frontend/src/features/layouts/components/thread-view/index.tsx @@ -39,7 +39,7 @@ export const ThreadView = () => { // Nest draft messages under their parent messages const messagesWithDraftChildren = useMemo(() => { if (!messages?.results) return []; - const rootMessages: MessageWithDraftChild[] = messages.results.filter((m) => !m.is_draft || !m.parent_id); + const rootMessages: MessageWithDraftChild[] = messages.results.filter((m) => !m.is_draft || !m.parent_id); const draftChildren = messages.results.filter((m) => m.is_draft && m.parent_id); draftChildren.forEach((m) => { const parentMessage = rootMessages.find((um) => um.id === m.parent_id);