File tree Expand file tree Collapse file tree 2 files changed +20
-5
lines changed
src/components/MessageInput/hooks Expand file tree Collapse file tree 2 files changed +20
-5
lines changed Original file line number Diff line number Diff line change 11# Changelog
22
3+ ## [ 3.5.2] ( https://github.com/GetStream/stream-chat-react/releases/tag/v3.5.2 ) 2021-01-21
4+
5+ ### Fix
6+
7+ - Handle emoji picker event listener race condition [ #675 ] ( https://github.com/GetStream/stream-chat-react/pull/675 )
8+ - Adjust style for only emoji messages [ #676 ] ( https://github.com/GetStream/stream-chat-react/pull/676 )
9+
310## [ 3.5.1] ( https://github.com/GetStream/stream-chat-react/releases/tag/v3.5.1 ) 2021-01-19
411
512### Fix
613
7- - Upload PSD attachments as file [ #67 ] ( https://github.com/GetStream/stream-chat-react/pull/673 )
14+ - Upload PSD attachments as file [ #673 ] ( https://github.com/GetStream/stream-chat-react/pull/673 )
815
916### Chore
1017
Original file line number Diff line number Diff line change @@ -343,19 +343,27 @@ export default function useMessageInput(props) {
343343 type : 'setEmojiPickerIsOpen' ,
344344 value : false ,
345345 } ) ;
346- document . removeEventListener ( 'click' , closeEmojiPicker , false ) ;
347346 }
348347 } ,
349348 [ emojiPickerRef ] ,
350349 ) ;
351350
352- const openEmojiPicker = useCallback ( ( ) => {
351+ const openEmojiPicker = useCallback ( ( event ) => {
353352 dispatch ( {
354353 type : 'setEmojiPickerIsOpen' ,
355354 value : true ,
356355 } ) ;
357- document . addEventListener ( 'click' , closeEmojiPicker , false ) ;
358- } , [ closeEmojiPicker ] ) ;
356+
357+ // Prevent event from bubbling to document, so the close handler is never called for this event
358+ event . stopPropagation ( ) ;
359+ } , [ ] ) ;
360+
361+ useEffect ( ( ) => {
362+ if ( state . emojiPickerIsOpen ) {
363+ document . addEventListener ( 'click' , closeEmojiPicker , false ) ;
364+ }
365+ return ( ) => document . removeEventListener ( 'click' , closeEmojiPicker , false ) ;
366+ } , [ closeEmojiPicker , state . emojiPickerIsOpen ] ) ;
359367
360368 const onSelectEmoji = useCallback ( ( emoji ) => insertText ( emoji . native ) , [
361369 insertText ,
You can’t perform that action at this time.
0 commit comments