From 865265d0d90ba10347170b3d9e0ceb379e3d7aaf Mon Sep 17 00:00:00 2001
From: Abdul Rahman <81605929+abdulrahmancodes@users.noreply.github.com>
Date: Fri, 12 Dec 2025 13:35:52 +0530
Subject: [PATCH] fix: Display locked UI for restricted email thread messages
(#16512)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Closes #15289
---
.../emails/components/EmailThreadMessage.tsx | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/packages/twenty-front/src/modules/activities/emails/components/EmailThreadMessage.tsx b/packages/twenty-front/src/modules/activities/emails/components/EmailThreadMessage.tsx
index ccd1150722..50fd780d9a 100644
--- a/packages/twenty-front/src/modules/activities/emails/components/EmailThreadMessage.tsx
+++ b/packages/twenty-front/src/modules/activities/emails/components/EmailThreadMessage.tsx
@@ -5,8 +5,11 @@ import { EmailThreadMessageBody } from '@/activities/emails/components/EmailThre
import { EmailThreadMessageBodyPreview } from '@/activities/emails/components/EmailThreadMessageBodyPreview';
import { EmailThreadMessageReceivers } from '@/activities/emails/components/EmailThreadMessageReceivers';
import { EmailThreadMessageSender } from '@/activities/emails/components/EmailThreadMessageSender';
+import { EmailThreadNotShared } from '@/activities/emails/components/EmailThreadNotShared';
import { type EmailThreadMessageParticipant } from '@/activities/emails/types/EmailThreadMessageParticipant';
+import { FIELD_RESTRICTED_ADDITIONAL_PERMISSIONS_REQUIRED } from 'twenty-shared/constants';
import { MessageParticipantRole } from 'twenty-shared/types';
+import { MessageChannelVisibility } from '~/generated/graphql';
const StyledThreadMessage = styled.div`
border-bottom: 1px solid ${({ theme }) => theme.border.color.light};
@@ -53,17 +56,24 @@ export const EmailThreadMessage = ({
return null;
}
+ const isRestricted =
+ body === FIELD_RESTRICTED_ADDITIONAL_PERMISSIONS_REQUIRED;
+
return (
!isOpen && setIsOpen(true)}
- style={{ cursor: isOpen ? 'auto' : 'pointer' }}
+ style={{ cursor: isOpen || isRestricted ? 'auto' : 'pointer' }}
>
isOpen && setIsOpen(false)}>
{isOpen && }
- {isOpen ? (
+ {isRestricted ? (
+
+ ) : isOpen ? (
) : (