diff --git a/ts/RemoteConfig.dom.ts b/ts/RemoteConfig.dom.ts index e3a1432d5e..18edf9e61d 100644 --- a/ts/RemoteConfig.dom.ts +++ b/ts/RemoteConfig.dom.ts @@ -48,6 +48,8 @@ const SemverKeys = [ 'desktop.plaintextExport.prod', 'desktop.remoteMegaphone.beta', 'desktop.remoteMegaphone.prod', + 'desktop.remoteMute.send.beta', + 'desktop.remoteMute.send.prod', 'desktop.retireAccessKeyGroupSend.beta', 'desktop.retireAccessKeyGroupSend.prod', 'desktop.keyTransparency.beta', diff --git a/ts/state/smart/ContactModal.preload.tsx b/ts/state/smart/ContactModal.preload.tsx index 34aa8871df..7f8d5ee0b4 100644 --- a/ts/state/smart/ContactModal.preload.tsx +++ b/ts/state/smart/ContactModal.preload.tsx @@ -4,8 +4,8 @@ import React, { memo, useCallback, useMemo } from 'react'; import { useSelector } from 'react-redux'; import { ContactModal } from '../../components/conversation/ContactModal.dom.js'; -import { getAreWeASubscriber } from '../selectors/items.dom.js'; -import { getIntl, getTheme } from '../selectors/user.std.js'; +import { getAreWeASubscriber, getItems } from '../selectors/items.dom.js'; +import { getIntl, getTheme, getVersion } from '../selectors/user.std.js'; import { getBadgesSelector } from '../selectors/badges.preload.js'; import { getCachedConversationMemberColorsSelector, @@ -26,6 +26,7 @@ import { getContactModalState } from '../selectors/globalModals.std.js'; import { strictAssert } from '../../util/assert.std.js'; import { CallMode } from '../../types/CallDisposition.std.js'; import { isCallLinkAdmin } from '../../types/CallLink.std.js'; +import { isFeaturedEnabledSelector } from '../../util/isFeatureEnabled.dom.js'; export const SmartContactModal = memo(function SmartContactModal() { const i18n = useSelector(getIntl); @@ -35,11 +36,21 @@ export const SmartContactModal = memo(function SmartContactModal() { const conversationSelector = useSelector(getConversationSelector); const hasStoriesSelector = useSelector(getHasStoriesSelector); + const version = useSelector(getVersion); + const items = useSelector(getItems); + const isRemoteMuteSendEnabled = isFeaturedEnabledSelector({ + betaKey: 'desktop.remoteMute.send.beta', + currentVersion: version, + remoteConfig: items.remoteConfig, + prodKey: 'desktop.remoteMute.send.prod', + }); + const activeCallState = useSelector(getActiveCallState); const isInFullScreenCall = useSelector(getIsInFullScreenCall); const getCallParticipant = useSelector(getParticipantInActiveCall); const callParticipant = getCallParticipant(activeCallDemuxId); - const isRemoteMuteVisible = Boolean(callParticipant); + const isRemoteMuteVisible = + isRemoteMuteSendEnabled && Boolean(callParticipant); const isMuted = !callParticipant?.hasRemoteAudio; const callLinkSelector = useSelector(getCallLinkSelector);