File tree Expand file tree Collapse file tree 5 files changed +18
-4
lines changed
MessageSimple/ReactionList Expand file tree Collapse file tree 5 files changed +18
-4
lines changed Original file line number Diff line number Diff 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 />
Original file line number Diff line number Diff 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' ,
Original file line number Diff line number Diff 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
5761export 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 < >
Original file line number Diff line number Diff 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
3539const 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 ,
Original file line number Diff line number Diff 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 ;
You can’t perform that action at this time.
0 commit comments