Skip to content

Commit

Permalink
fix: show selected reaction tab in the message menu when long pressed…
Browse files Browse the repository at this point in the history
… 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
  • Loading branch information
khushal87 authored Feb 18, 2025
1 parent 92f0b01 commit f8e37f3
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 4 deletions.
5 changes: 4 additions & 1 deletion package/src/components/Message/Message.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,7 @@ const MessageWithContext = <
const [showMessageReactions, setShowMessageReactions] = useState(true);
const [isBounceDialogOpen, setIsBounceDialogOpen] = useState(false);
const [isEditedMessageOpen, setIsEditedMessageOpen] = useState(false);
const [selectedReaction, setSelectedReaction] = useState<string | undefined>(undefined);

const {
channel,
Expand Down Expand Up @@ -300,10 +301,11 @@ const MessageWithContext = <
},
} = useTheme();

const showMessageOverlay = async (showMessageReactions = false) => {
const showMessageOverlay = async (showMessageReactions = false, selectedReaction?: string) => {
await dismissKeyboard();
setShowMessageReactions(showMessageReactions);
setMessageOverlayVisible(true);
setSelectedReaction(selectedReaction);
};

const dismissOverlay = () => {
Expand Down Expand Up @@ -733,6 +735,7 @@ const MessageWithContext = <
dismissOverlay={dismissOverlay}
handleReaction={ownCapabilities.sendReaction ? handleReaction : undefined}
messageActions={messageActions}
selectedReaction={selectedReaction}
showMessageReactions={showMessageReactions}
visible={messageOverlayVisible}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ export const ReactionListBottomItem = <
onLongPress({
defaultHandler: () => {
if (showMessageOverlay) {
showMessageOverlay(true);
showMessageOverlay(true, reaction.type);
}
},
emitter: 'reactionList',
Expand Down
6 changes: 6 additions & 0 deletions package/src/components/MessageMenu/MessageMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ export type MessageMenuProps<
* @returns
*/
handleReaction?: (reactionType: string) => Promise<void>;
/**
* The selected reaction
*/
selectedReaction?: string;
};

export const MessageMenu = <
Expand All @@ -70,6 +74,7 @@ export const MessageMenu = <
MessageUserReactions: propMessageUserReactions,
MessageUserReactionsAvatar: propMessageUserReactionsAvatar,
MessageUserReactionsItem: propMessageUserReactionsItem,
selectedReaction,
showMessageReactions,
visible,
} = props;
Expand Down Expand Up @@ -103,6 +108,7 @@ export const MessageMenu = <
message={message}
MessageUserReactionsAvatar={MessageUserReactionsAvatar}
MessageUserReactionsItem={MessageUserReactionsItem}
selectedReaction={selectedReaction}
/>
) : (
<>
Expand Down
7 changes: 6 additions & 1 deletion package/src/components/MessageMenu/MessageUserReactions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ export type MessageUserReactionsProps<
* An array of reactions
*/
reactions?: Reaction[];
/**
* The selected reaction
*/
selectedReaction?: string;
};

const sort: ReactionSortBase = {
Expand Down Expand Up @@ -57,11 +61,12 @@ export const MessageUserReactions = (props: MessageUserReactionsProps) => {
MessageUserReactionsAvatar: propMessageUserReactionsAvatar,
MessageUserReactionsItem: propMessageUserReactionsItem,
reactions: propReactions,
selectedReaction: propSelectedReaction,
supportedReactions: propSupportedReactions,
} = props;
const reactionTypes = Object.keys(message?.reaction_groups ?? {});
const [selectedReaction, setSelectedReaction] = React.useState<string | undefined>(
reactionTypes[0],
propSelectedReaction ?? reactionTypes[0],
);
const {
MessageUserReactionsAvatar: contextMessageUserReactionsAvatar,
Expand Down
2 changes: 1 addition & 1 deletion package/src/contexts/messageContext/MessageContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ export type MessageContextValue<
* @param showMessageReactions
* @returns void
*/
showMessageOverlay: (showMessageReactions?: boolean) => void;
showMessageOverlay: (showMessageReactions?: boolean, selectedReaction?: string) => void;
showMessageStatus: boolean;
/** Whether or not the Message is part of a Thread */
threadList: boolean;
Expand Down

0 comments on commit f8e37f3

Please sign in to comment.