@@ -13,7 +13,6 @@ import QuickEmojiReactions from '@components/Reactions/QuickEmojiReactions';
1313import addEncryptedAuthTokenToURL from '@libs/addEncryptedAuthTokenToURL' ;
1414import { isMobileSafari } from '@libs/Browser' ;
1515import Clipboard from '@libs/Clipboard' ;
16- import { shouldShowJoinThread , shouldShowLeaveThread } from '@libs/ContextMenuUtils' ;
1716import EmailUtils from '@libs/EmailUtils' ;
1817import { getEnvironmentURL } from '@libs/Environment/Environment' ;
1918import fileDownload from '@libs/fileDownload' ;
@@ -87,7 +86,9 @@ import {
8786 isActionableTrackExpense ,
8887 isActionOfType ,
8988 isCardIssuedAction ,
89+ isCreatedAction ,
9090 isCreatedTaskReportAction ,
91+ isDeletedAction as isDeletedActionReportActionsUtils ,
9192 isMarkAsClosedAction ,
9293 isMemberChangeAction ,
9394 isMessageDeleted ,
@@ -104,6 +105,7 @@ import {
104105 isTaskAction as isTaskActionReportActionsUtils ,
105106 isTripPreview ,
106107 isUnapprovedAction ,
108+ isWhisperAction as isWhisperActionReportActionsUtils ,
107109} from '@libs/ReportActionsUtils' ;
108110import { getReportName } from '@libs/ReportNameUtils' ;
109111import {
@@ -131,6 +133,7 @@ import {
131133 getWorkspaceNameUpdatedMessage ,
132134 isExpenseReport ,
133135 shouldDisableThread ,
136+ shouldDisplayThreadReplies as shouldDisplayThreadRepliesReportUtils ,
134137} from '@libs/ReportUtils' ;
135138import { getTaskCreatedMessage , getTaskReportActionMessage } from '@libs/TaskUtils' ;
136139import { setDownload } from '@userActions/Download' ;
@@ -489,9 +492,28 @@ const ContextMenuActions: ContextMenuAction[] = [
489492 {
490493 isAnonymousAction : false ,
491494 textTranslateKey : 'reportActionContextMenu.joinThread' ,
492- icon : Expensicons . Bell ,
493- shouldShow : ( { reportAction, isArchivedRoom, isThreadReportParentAction, isHarvestReport} ) =>
494- shouldShowJoinThread ( { reportAction, isArchivedRoom, isThreadReportParentAction, isHarvestReport} ) ,
495+ icon : 'Bell' ,
496+ shouldShow : ( { reportAction, isArchivedRoom, isThreadReportParentAction, isHarvestReport} ) => {
497+ const childReportNotificationPreference = getChildReportNotificationPreferenceReportUtils ( reportAction ) ;
498+ const isDeletedAction = isDeletedActionReportActionsUtils ( reportAction ) ;
499+ const shouldDisplayThreadReplies = shouldDisplayThreadRepliesReportUtils ( reportAction , isThreadReportParentAction ) ;
500+ const subscribed = childReportNotificationPreference !== 'hidden' ;
501+ const isWhisperAction = isWhisperActionReportActionsUtils ( reportAction ) || isActionableTrackExpense ( reportAction ) ;
502+ const isExpenseReportAction = isMoneyRequestAction ( reportAction ) || isReportPreviewActionReportActionsUtils ( reportAction ) ;
503+ const isTaskAction = isCreatedTaskReportAction ( reportAction ) ;
504+ const isHarvestCreatedExpenseReportAction = isHarvestReport && isCreatedAction ( reportAction ) ;
505+ const shouldDisableJoinThread = shouldDisableThread ( reportAction , isThreadReportParentAction , isArchivedRoom ) ;
506+ return (
507+ ! subscribed &&
508+ ! isWhisperAction &&
509+ ! isTaskAction &&
510+ ! isExpenseReportAction &&
511+ ! isThreadReportParentAction &&
512+ ! isHarvestCreatedExpenseReportAction &&
513+ ! shouldDisableJoinThread &&
514+ ( shouldDisplayThreadReplies || ( ! isDeletedAction && ! isArchivedRoom ) )
515+ ) ;
516+ } ,
495517 onPress : ( closePopover , { reportAction, reportID} ) => {
496518 const childReportNotificationPreference = getChildReportNotificationPreferenceReportUtils ( reportAction ) ;
497519 const originalReportID = getOriginalReportID ( reportID , reportAction ) ;
@@ -513,8 +535,25 @@ const ContextMenuActions: ContextMenuAction[] = [
513535 isAnonymousAction : false ,
514536 textTranslateKey : 'reportActionContextMenu.leaveThread' ,
515537 icon : Expensicons . Exit ,
516- shouldShow : ( { reportAction, isArchivedRoom, isThreadReportParentAction, isHarvestReport} ) =>
517- shouldShowLeaveThread ( { reportAction, isArchivedRoom, isThreadReportParentAction, isHarvestReport} ) ,
538+ shouldShow : ( { reportAction, isArchivedRoom, isThreadReportParentAction, isHarvestReport} ) => {
539+ const childReportNotificationPreference = getChildReportNotificationPreferenceReportUtils ( reportAction ) ;
540+ const isDeletedAction = isDeletedActionReportActionsUtils ( reportAction ) ;
541+ const shouldDisplayThreadReplies = shouldDisplayThreadRepliesReportUtils ( reportAction , isThreadReportParentAction ) ;
542+ const subscribed = childReportNotificationPreference !== 'hidden' ;
543+ const isWhisperAction = isWhisperActionReportActionsUtils ( reportAction ) || isActionableTrackExpense ( reportAction ) ;
544+ const isExpenseReportAction = isMoneyRequestAction ( reportAction ) || isReportPreviewActionReportActionsUtils ( reportAction ) ;
545+ const isTaskAction = isCreatedTaskReportAction ( reportAction ) ;
546+ const isHarvestCreatedExpenseReportAction = isHarvestReport && isCreatedAction ( reportAction ) ;
547+ return (
548+ subscribed &&
549+ ! isWhisperAction &&
550+ ! isTaskAction &&
551+ ! isExpenseReportAction &&
552+ ! isThreadReportParentAction &&
553+ ! isHarvestCreatedExpenseReportAction &&
554+ ( shouldDisplayThreadReplies || ( ! isDeletedAction && ! isArchivedRoom ) )
555+ ) ;
556+ } ,
518557 onPress : ( closePopover , { reportAction, reportID} ) => {
519558 const childReportNotificationPreference = getChildReportNotificationPreferenceReportUtils ( reportAction ) ;
520559 const originalReportID = getOriginalReportID ( reportID , reportAction ) ;
0 commit comments