diff --git a/lib/shared/reaction-utils.js b/lib/shared/reaction-utils.js --- a/lib/shared/reaction-utils.js +++ b/lib/shared/reaction-utils.js @@ -17,6 +17,7 @@ ComposableMessageInfo, RobotextMessageInfo, } from '../types/message-types.js'; +import { isComposableMessageType } from '../types/message-types.js'; import type { ThreadInfo } from '../types/minimally-encoded-thread-permissions-types.js'; import { threadPermissions } from '../types/thread-permission-types.js'; import { useDispatchActionPromise } from '../utils/redux-promise-utils.js'; @@ -96,11 +97,12 @@ return false; } + const protocol = threadSpecs[threadInfo.type].protocol(); if ( !targetMessageInfo || - (!targetMessageInfo.id && - !threadSpecs[threadInfo.type].protocol() - .canActionsTargetPendingMessages) || + (!targetMessageInfo.id && !protocol.canActionsTargetPendingMessages) || + (!isComposableMessageType(targetMessageInfo.type) && + !protocol.canReactToRobotext) || (threadInfo.sourceMessageID && threadInfo.sourceMessageID === targetMessageInfo.id) ) { diff --git a/lib/shared/threads/protocols/dm-thread-protocol.js b/lib/shared/threads/protocols/dm-thread-protocol.js --- a/lib/shared/threads/protocols/dm-thread-protocol.js +++ b/lib/shared/threads/protocols/dm-thread-protocol.js @@ -942,6 +942,7 @@ supportsBackgroundNotifs: true, viewerCanUpdateOwnRole: false, protocolName: protocolNames.COMM_DM, + canReactToRobotext: true, }); function pendingThreadType(numberOfOtherMembers: number) { diff --git a/lib/shared/threads/protocols/farcaster-thread-protocol.js b/lib/shared/threads/protocols/farcaster-thread-protocol.js --- a/lib/shared/threads/protocols/farcaster-thread-protocol.js +++ b/lib/shared/threads/protocols/farcaster-thread-protocol.js @@ -814,8 +814,8 @@ }, supportsBackgroundNotifs: false, viewerCanUpdateOwnRole: false, - protocolName: protocolNames.FARCASTER_DC, + canReactToRobotext: false, }; function pendingThreadType(numberOfOtherMembers: number) { diff --git a/lib/shared/threads/protocols/keyserver-thread-protocol.js b/lib/shared/threads/protocols/keyserver-thread-protocol.js --- a/lib/shared/threads/protocols/keyserver-thread-protocol.js +++ b/lib/shared/threads/protocols/keyserver-thread-protocol.js @@ -746,6 +746,7 @@ supportsBackgroundNotifs: true, viewerCanUpdateOwnRole: true, protocolName: protocolNames.KEYSERVER, + canReactToRobotext: true, }); function pendingThreadType(numberOfOtherMembers: number) { diff --git a/lib/shared/threads/thread-spec.js b/lib/shared/threads/thread-spec.js --- a/lib/shared/threads/thread-spec.js +++ b/lib/shared/threads/thread-spec.js @@ -517,6 +517,7 @@ +supportsBackgroundNotifs: boolean, +viewerCanUpdateOwnRole: boolean, +protocolName: ProtocolName, + +canReactToRobotext: boolean, }; export type ThreadSpec<