Upgrade to React 18 (#24916)
This commit is contained in:
		
					parent
					
						
							
								4a22e72b9b
							
						
					
				
			
			
				commit
				
					
						8d6aea3326
					
				
			
		
					 13 changed files with 127 additions and 148 deletions
				
			
		|  | @ -27,7 +27,7 @@ const messages = defineMessages({ | |||
| 
 | ||||
| let EmojiPicker, Emoji; // load asynchronously | ||||
| 
 | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true } : false; | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true, capture: true } : true; | ||||
| 
 | ||||
| const backgroundImageFn = () => `${assetHost}/emoji/sheet_13.png`; | ||||
| 
 | ||||
|  | @ -78,12 +78,12 @@ class ModifierPickerMenu extends React.PureComponent { | |||
|   }; | ||||
| 
 | ||||
|   attachListeners () { | ||||
|     document.addEventListener('click', this.handleDocumentClick, false); | ||||
|     document.addEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
|   } | ||||
| 
 | ||||
|   removeListeners () { | ||||
|     document.removeEventListener('click', this.handleDocumentClick, false); | ||||
|     document.removeEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
|   } | ||||
| 
 | ||||
|  | @ -176,7 +176,7 @@ class EmojiPickerMenuImpl extends React.PureComponent { | |||
|   }; | ||||
| 
 | ||||
|   componentDidMount () { | ||||
|     document.addEventListener('click', this.handleDocumentClick, false); | ||||
|     document.addEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
| 
 | ||||
|     // Because of https://github.com/react-bootstrap/react-bootstrap/issues/2614 we need | ||||
|  | @ -191,7 +191,7 @@ class EmojiPickerMenuImpl extends React.PureComponent { | |||
|   } | ||||
| 
 | ||||
|   componentWillUnmount () { | ||||
|     document.removeEventListener('click', this.handleDocumentClick, false); | ||||
|     document.removeEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -15,7 +15,7 @@ const messages = defineMessages({ | |||
|   clear: { id: 'emoji_button.clear', defaultMessage: 'Clear' }, | ||||
| }); | ||||
| 
 | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true } : false; | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true, capture: true } : true; | ||||
| 
 | ||||
| class LanguageDropdownMenu extends React.PureComponent { | ||||
| 
 | ||||
|  | @ -39,11 +39,12 @@ class LanguageDropdownMenu extends React.PureComponent { | |||
|   handleDocumentClick = e => { | ||||
|     if (this.node && !this.node.contains(e.target)) { | ||||
|       this.props.onClose(); | ||||
|       e.stopPropagation(); | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|   componentDidMount () { | ||||
|     document.addEventListener('click', this.handleDocumentClick, false); | ||||
|     document.addEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
| 
 | ||||
|     // Because of https://github.com/react-bootstrap/react-bootstrap/issues/2614 we need | ||||
|  | @ -57,7 +58,7 @@ class LanguageDropdownMenu extends React.PureComponent { | |||
|   } | ||||
| 
 | ||||
|   componentWillUnmount () { | ||||
|     document.removeEventListener('click', this.handleDocumentClick, false); | ||||
|     document.removeEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -19,7 +19,7 @@ const messages = defineMessages({ | |||
|   change_privacy: { id: 'privacy.change', defaultMessage: 'Adjust status privacy' }, | ||||
| }); | ||||
| 
 | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true } : false; | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true, capture: true } : true; | ||||
| 
 | ||||
| class PrivacyDropdownMenu extends React.PureComponent { | ||||
| 
 | ||||
|  | @ -34,6 +34,7 @@ class PrivacyDropdownMenu extends React.PureComponent { | |||
|   handleDocumentClick = e => { | ||||
|     if (this.node && !this.node.contains(e.target)) { | ||||
|       this.props.onClose(); | ||||
|       e.stopPropagation(); | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|  | @ -91,13 +92,13 @@ class PrivacyDropdownMenu extends React.PureComponent { | |||
|   }; | ||||
| 
 | ||||
|   componentDidMount () { | ||||
|     document.addEventListener('click', this.handleDocumentClick, false); | ||||
|     document.addEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
|     if (this.focusedItem) this.focusedItem.focus({ preventScroll: true }); | ||||
|   } | ||||
| 
 | ||||
|   componentWillUnmount () { | ||||
|     document.removeEventListener('click', this.handleDocumentClick, false); | ||||
|     document.removeEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue