diff --git a/src/script/page/RightSidebar/ConversationDetails/ConversationDetails.tsx b/src/script/page/RightSidebar/ConversationDetails/ConversationDetails.tsx index d40fc46f26d..0f11cb26f23 100644 --- a/src/script/page/RightSidebar/ConversationDetails/ConversationDetails.tsx +++ b/src/script/page/RightSidebar/ConversationDetails/ConversationDetails.tsx @@ -139,9 +139,19 @@ const ConversationDetails = forwardRef const teamId = activeConversation.team_id; - const {isTeam, classifiedDomains, team} = useKoSubscribableChildren(teamState, [ + const { + isTeam, + classifiedDomains, + team, + isSelfDeletingMessagesEnabled, + isSelfDeletingMessagesEnforced, + getEnforcedSelfDeletingMessagesTimeout, + } = useKoSubscribableChildren(teamState, [ 'isTeam', 'classifiedDomains', + 'isSelfDeletingMessagesEnabled', + 'isSelfDeletingMessagesEnforced', + 'getEnforcedSelfDeletingMessagesTimeout', 'team', ]); @@ -153,7 +163,8 @@ const ConversationDetails = forwardRef const showOptionGuests = isActiveGroupParticipant && !!teamId && roleRepository.canToggleGuests(activeConversation); const hasAdvancedNotifications = isMutable && isTeam; const showOptionNotificationsGroup = hasAdvancedNotifications && isGroup; - const showOptionTimedMessages = isActiveGroupParticipant && roleRepository.canToggleTimeout(activeConversation); + const showOptionTimedMessages = + isActiveGroupParticipant && roleRepository.canToggleTimeout(activeConversation) && isSelfDeletingMessagesEnabled; const showOptionServices = isActiveGroupParticipant && !!teamId && roleRepository.canToggleGuests(activeConversation); const showOptionReadReceipts = !!teamId && roleRepository.canToggleReadReceipts(activeConversation); @@ -175,8 +186,11 @@ const ConversationDetails = forwardRef const servicesOptionsText = isServicesRoom ? t('conversationDetailsOn') : t('conversationDetailsOff'); const notificationStatusText = getNotificationText(notificationState); - const timedMessagesText = - hasTimer && globalMessageTimer ? formatDuration(globalMessageTimer).text : t('ephemeralUnitsNone'); + const timedMessagesText = isSelfDeletingMessagesEnforced + ? formatDuration(getEnforcedSelfDeletingMessagesTimeout).text + : hasTimer && globalMessageTimer + ? formatDuration(globalMessageTimer).text + : t('ephemeralUnitsNone'); const showActionMute = isMutable && !isTeam; const isVerified = verificationState === ConversationVerificationState.VERIFIED; diff --git a/src/script/page/RightSidebar/RightSidebar.tsx b/src/script/page/RightSidebar/RightSidebar.tsx index f22016d4829..53b10f191eb 100644 --- a/src/script/page/RightSidebar/RightSidebar.tsx +++ b/src/script/page/RightSidebar/RightSidebar.tsx @@ -248,6 +248,7 @@ const RightSidebar: FC = ({ {currentState === PanelState.TIMED_MESSAGES && ( void; onGoBack: () => void; repositories: ViewModelRepositories; + teamState: TeamState; } interface MessageTime { @@ -45,14 +47,26 @@ interface MessageTime { value: number; } -const TimedMessages: FC = ({activeConversation, onClose, onGoBack, repositories}) => { +const TimedMessages: FC = ({ + activeConversation, + onClose, + onGoBack, + repositories, + teamState, +}) => { const [currentMessageTimer, setCurrentMessageTimer] = useState(0); const [messageTimes, setMessageTimes] = useState([]); const {globalMessageTimer} = useKoSubscribableChildren(activeConversation, ['globalMessageTimer']); + const {isSelfDeletingMessagesEnforced, getEnforcedSelfDeletingMessagesTimeout} = useKoSubscribableChildren( + teamState, + ['isSelfDeletingMessagesEnforced', 'getEnforcedSelfDeletingMessagesTimeout'], + ); useEffect(() => { - const messageTimer = globalMessageTimer ?? 0; + const messageTimer = isSelfDeletingMessagesEnforced + ? getEnforcedSelfDeletingMessagesTimeout + : globalMessageTimer ?? 0; setCurrentMessageTimer(messageTimer); const mappedTimes = EphemeralTimings.VALUES.map(time => ({ @@ -104,7 +118,7 @@ const TimedMessages: FC = ({activeConversation, onClose options={messageTimes.map(({text, isCustom, value}) => ({ label: text, value: value, - isDisabled: isCustom, + isDisabled: isCustom || isSelfDeletingMessagesEnforced, optionUeiName: 'item-timed-messages-option', }))} />