Skip to content

Commit b9b5cd7

Browse files
authored
fix: deprecate messageReactions prop and use isMessageActionsVisible instead for messageActions (#2676)
* fix: deprecate messageReactions prop and use isMessageActionsVisible instead for messageActions * docs: fix custom message actions * fix: execution logic for showMessageOverlay
1 parent 87d85c6 commit b9b5cd7

File tree

6 files changed

+31
-11
lines changed

6 files changed

+31
-11
lines changed

docusaurus/docs/reactnative/guides/custom-message-actions.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ messageActions={({
5858
editMessage, // MessageAction | null;
5959
error, // boolean;
6060
flagMessage, // MessageAction | null;
61+
isMessageActionsVisible, // boolean;
6162
isMyMessage, // boolean;
6263
isThreadMessage, // boolean;
6364
message, // MessageType<At, Ch, Co, Ev, Me, Re, Us>;
64-
messageReactions, // boolean;
6565
reply, // MessageAction | null;
6666
retry, // MessageAction | null;
6767
threadReply, // MessageAction | null;

package/src/components/Message/Message.tsx

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,10 @@ export type MessageActionHandlers<
122122
pinMessage: () => Promise<void>;
123123
quotedReply: () => void;
124124
resendMessage: () => Promise<void>;
125+
/**
126+
* @deprecated
127+
* TODO: This seems useless for the action handlers here so can be removed.
128+
*/
125129
showMessageOverlay: () => void;
126130
toggleBanUser: () => Promise<void>;
127131
toggleMuteUser: () => Promise<void>;
@@ -355,7 +359,7 @@ const MessageWithContext = <
355359
setIsBounceDialogOpen(true);
356360
return;
357361
}
358-
showMessageOverlay(false, true);
362+
showMessageOverlay(true, true);
359363
} else if (quotedMessage) {
360364
onPressQuotedMessage(quotedMessage);
361365
}
@@ -557,7 +561,7 @@ const MessageWithContext = <
557561

558562
const { userLanguage } = useTranslationContext();
559563

560-
const showMessageOverlay = async (messageReactions = false, error = errorOrFailed) => {
564+
const showMessageOverlay = async (isMessageActionsVisible = true, error = errorOrFailed) => {
561565
await dismissKeyboard();
562566

563567
const isThreadMessage = threadList || !!message.parent_id;
@@ -576,10 +580,11 @@ const MessageWithContext = <
576580
editMessage,
577581
error,
578582
flagMessage,
583+
isMessageActionsVisible,
579584
isMyMessage,
580585
isThreadMessage,
581586
message,
582-
messageReactions,
587+
messageReactions: isMessageActionsVisible === false,
583588
muteUser,
584589
ownCapabilities,
585590
pinMessage,
@@ -600,7 +605,7 @@ const MessageWithContext = <
600605
message,
601606
messageActions: messageActions?.filter(Boolean) as MessageActionListItemProps[] | undefined,
602607
messageContext: { ...messageContext, preventPress: true },
603-
messageReactionTitle: !error && messageReactions ? t('Message Reactions') : undefined,
608+
messageReactionTitle: !error && !isMessageActionsVisible ? t('Message Reactions') : undefined,
604609
messagesContext: { ...messagesContext, messageContentOrder },
605610
onlyEmojis,
606611
otherAttachments: attachments.other,
@@ -659,7 +664,7 @@ const MessageWithContext = <
659664
return;
660665
}
661666
triggerHaptic('impactMedium');
662-
showMessageOverlay(false);
667+
showMessageOverlay(true);
663668
}
664669
: () => null;
665670

package/src/components/Message/MessageSimple/ReactionList.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ const ReactionListWithContext = <
211211
onPress={(event) => {
212212
if (onPress) {
213213
onPress({
214-
defaultHandler: () => showMessageOverlay(true),
214+
defaultHandler: () => showMessageOverlay(false),
215215
emitter: 'reactionList',
216216
event,
217217
});
@@ -220,7 +220,7 @@ const ReactionListWithContext = <
220220
onPressIn={(event) => {
221221
if (onPressIn) {
222222
onPressIn({
223-
defaultHandler: () => showMessageOverlay(true),
223+
defaultHandler: () => showMessageOverlay(false),
224224
emitter: 'reactionList',
225225
event,
226226
});

package/src/components/Message/utils/messageActions.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,14 @@ export type MessageActionsParams<
1212
editMessage: MessageActionType;
1313
error: boolean | Error;
1414
flagMessage: MessageActionType;
15+
/**
16+
* Determines if the message actions are visible.
17+
*/
18+
isMessageActionsVisible: boolean;
1519
isThreadMessage: boolean;
20+
/**
21+
* @deprecated use `isMessageActionsVisible` instead.
22+
*/
1623
messageReactions: boolean;
1724
muteUser: MessageActionType;
1825
ownCapabilities: OwnCapabilitiesContextValue;
@@ -42,6 +49,7 @@ export const messageActions = <
4249
editMessage,
4350
error,
4451
flagMessage,
52+
isMessageActionsVisible,
4553
isMyMessage,
4654
isThreadMessage,
4755
message,
@@ -53,8 +61,8 @@ export const messageActions = <
5361
threadReply,
5462
unpinMessage,
5563
}: MessageActionsParams<StreamChatGenerics>) => {
56-
if (messageReactions) {
57-
return undefined;
64+
if (messageReactions || !isMessageActionsVisible) {
65+
return [];
5866
}
5967

6068
const actions: Array<MessageActionType> = [];

package/src/contexts/messageContext/MessageContext.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ export type MessageContextValue<
125125
reactions: ReactionSummary[];
126126
/** React set state function to set the state of `isEditedMessageOpen` */
127127
setIsEditedMessageOpen: React.Dispatch<React.SetStateAction<boolean>>;
128-
showMessageOverlay: (messageReactions?: boolean, error?: boolean) => void;
128+
showMessageOverlay: (isMessageActionsVisible?: boolean, error?: boolean) => void;
129129
showMessageStatus: boolean;
130130
/** Whether or not the Message is part of a Thread */
131131
threadList: boolean;

package/src/contexts/overlayContext/OverlayContext.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,13 @@ export type OverlayProviderProps<
7373
isMyMessage?: boolean;
7474
isThreadMessage?: boolean;
7575
message?: MessageType<StreamChatGenerics>;
76+
/**
77+
* @deprecated use the following instead:
78+
* messageActions={(params) => {
79+
* const actions = messageActions({ ...params, isMessageActionsVisible: false });
80+
* return actions;
81+
* }}
82+
*/
7683
messageReactions?: boolean;
7784
messageTextNumberOfLines?: number;
7885
numberOfImageGalleryGridColumns?: number;

0 commit comments

Comments
 (0)