Skip to content

Commit f8e37f3

Browse files
authored
fix: show selected reaction tab in the message menu when long pressed in bottom reaction list (#2955)
* fix: change flatlist inside the bottom sheet modal and fix gesture in bottom sheet * fix: lint issues * fix:bottom sheet transparent click area * fix: show selected reaction tab in the message menu when long pressed in bottom reaction list * fix: show selected reaction tab in the message menu when long pressed in bottom reaction list * chore: resolve conflicts from develop
1 parent 92f0b01 commit f8e37f3

File tree

5 files changed

+18
-4
lines changed

5 files changed

+18
-4
lines changed

package/src/components/Message/Message.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ const MessageWithContext = <
229229
const [showMessageReactions, setShowMessageReactions] = useState(true);
230230
const [isBounceDialogOpen, setIsBounceDialogOpen] = useState(false);
231231
const [isEditedMessageOpen, setIsEditedMessageOpen] = useState(false);
232+
const [selectedReaction, setSelectedReaction] = useState<string | undefined>(undefined);
232233

233234
const {
234235
channel,
@@ -300,10 +301,11 @@ const MessageWithContext = <
300301
},
301302
} = useTheme();
302303

303-
const showMessageOverlay = async (showMessageReactions = false) => {
304+
const showMessageOverlay = async (showMessageReactions = false, selectedReaction?: string) => {
304305
await dismissKeyboard();
305306
setShowMessageReactions(showMessageReactions);
306307
setMessageOverlayVisible(true);
308+
setSelectedReaction(selectedReaction);
307309
};
308310

309311
const dismissOverlay = () => {
@@ -733,6 +735,7 @@ const MessageWithContext = <
733735
dismissOverlay={dismissOverlay}
734736
handleReaction={ownCapabilities.sendReaction ? handleReaction : undefined}
735737
messageActions={messageActions}
738+
selectedReaction={selectedReaction}
736739
showMessageReactions={showMessageReactions}
737740
visible={messageOverlayVisible}
738741
/>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ export const ReactionListBottomItem = <
9999
onLongPress({
100100
defaultHandler: () => {
101101
if (showMessageOverlay) {
102-
showMessageOverlay(true);
102+
showMessageOverlay(true, reaction.type);
103103
}
104104
},
105105
emitter: 'reactionList',

package/src/components/MessageMenu/MessageMenu.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ export type MessageMenuProps<
5252
* @returns
5353
*/
5454
handleReaction?: (reactionType: string) => Promise<void>;
55+
/**
56+
* The selected reaction
57+
*/
58+
selectedReaction?: string;
5559
};
5660

5761
export const MessageMenu = <
@@ -70,6 +74,7 @@ export const MessageMenu = <
7074
MessageUserReactions: propMessageUserReactions,
7175
MessageUserReactionsAvatar: propMessageUserReactionsAvatar,
7276
MessageUserReactionsItem: propMessageUserReactionsItem,
77+
selectedReaction,
7378
showMessageReactions,
7479
visible,
7580
} = props;
@@ -103,6 +108,7 @@ export const MessageMenu = <
103108
message={message}
104109
MessageUserReactionsAvatar={MessageUserReactionsAvatar}
105110
MessageUserReactionsItem={MessageUserReactionsItem}
111+
selectedReaction={selectedReaction}
106112
/>
107113
) : (
108114
<>

package/src/components/MessageMenu/MessageUserReactions.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ export type MessageUserReactionsProps<
3030
* An array of reactions
3131
*/
3232
reactions?: Reaction[];
33+
/**
34+
* The selected reaction
35+
*/
36+
selectedReaction?: string;
3337
};
3438

3539
const sort: ReactionSortBase = {
@@ -57,11 +61,12 @@ export const MessageUserReactions = (props: MessageUserReactionsProps) => {
5761
MessageUserReactionsAvatar: propMessageUserReactionsAvatar,
5862
MessageUserReactionsItem: propMessageUserReactionsItem,
5963
reactions: propReactions,
64+
selectedReaction: propSelectedReaction,
6065
supportedReactions: propSupportedReactions,
6166
} = props;
6267
const reactionTypes = Object.keys(message?.reaction_groups ?? {});
6368
const [selectedReaction, setSelectedReaction] = React.useState<string | undefined>(
64-
reactionTypes[0],
69+
propSelectedReaction ?? reactionTypes[0],
6570
);
6671
const {
6772
MessageUserReactionsAvatar: contextMessageUserReactionsAvatar,

package/src/contexts/messageContext/MessageContext.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ export type MessageContextValue<
9696
* @param showMessageReactions
9797
* @returns void
9898
*/
99-
showMessageOverlay: (showMessageReactions?: boolean) => void;
99+
showMessageOverlay: (showMessageReactions?: boolean, selectedReaction?: string) => void;
100100
showMessageStatus: boolean;
101101
/** Whether or not the Message is part of a Thread */
102102
threadList: boolean;

0 commit comments

Comments
 (0)