Upgrade to React 18 (#24916)
This commit is contained in:
		
					parent
					
						
							
								4a22e72b9b
							
						
					
				
			
			
				commit
				
					
						8d6aea3326
					
				
			
		
					 13 changed files with 127 additions and 148 deletions
				
			
		|  | @ -3,6 +3,8 @@ import PropTypes from 'prop-types'; | |||
| import { supportsPassiveEvents } from 'detect-passive-events'; | ||||
| import { scrollTop } from '../scroll'; | ||||
| 
 | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true } : false; | ||||
| 
 | ||||
| export default class Column extends React.PureComponent { | ||||
| 
 | ||||
|   static propTypes = { | ||||
|  | @ -35,17 +37,17 @@ export default class Column extends React.PureComponent { | |||
| 
 | ||||
|   componentDidMount () { | ||||
|     if (this.props.bindToDocument) { | ||||
|       document.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : false); | ||||
|       document.addEventListener('wheel', this.handleWheel, listenerOptions); | ||||
|     } else { | ||||
|       this.node.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : false); | ||||
|       this.node.addEventListener('wheel', this.handleWheel, listenerOptions); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   componentWillUnmount () { | ||||
|     if (this.props.bindToDocument) { | ||||
|       document.removeEventListener('wheel', this.handleWheel); | ||||
|       document.removeEventListener('wheel', this.handleWheel, listenerOptions); | ||||
|     } else { | ||||
|       this.node.removeEventListener('wheel', this.handleWheel); | ||||
|       this.node.removeEventListener('wheel', this.handleWheel, listenerOptions); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ import { supportsPassiveEvents } from 'detect-passive-events'; | |||
| import classNames from 'classnames'; | ||||
| import { CircularProgress } from 'mastodon/components/loading_indicator'; | ||||
| 
 | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true } : false; | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true, capture: true } : true; | ||||
| let id = 0; | ||||
| 
 | ||||
| class DropdownMenu extends React.PureComponent { | ||||
|  | @ -35,12 +35,13 @@ class DropdownMenu 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('keydown', this.handleKeyDown, false); | ||||
|     document.addEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.addEventListener('keydown', this.handleKeyDown, { capture: true }); | ||||
|     document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
| 
 | ||||
|     if (this.focusedItem && this.props.openedViaKeyboard) { | ||||
|  | @ -49,8 +50,8 @@ class DropdownMenu extends React.PureComponent { | |||
|   } | ||||
| 
 | ||||
|   componentWillUnmount () { | ||||
|     document.removeEventListener('click', this.handleDocumentClick, false); | ||||
|     document.removeEventListener('keydown', this.handleKeyDown, false); | ||||
|     document.removeEventListener('click', this.handleDocumentClick, { capture: true }); | ||||
|     document.removeEventListener('keydown', this.handleKeyDown, { capture: true }); | ||||
|     document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions); | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -15,6 +15,8 @@ import { connect } from 'react-redux'; | |||
| 
 | ||||
| const MOUSE_IDLE_DELAY = 300; | ||||
| 
 | ||||
| const listenerOptions = supportsPassiveEvents ? { passive: true } : false; | ||||
| 
 | ||||
| const mapStateToProps = (state, { scrollKey }) => { | ||||
|   return { | ||||
|     preventScroll: scrollKey === state.getIn(['dropdown_menu', 'scroll_key']), | ||||
|  | @ -237,20 +239,20 @@ class ScrollableList extends PureComponent { | |||
|   attachScrollListener () { | ||||
|     if (this.props.bindToDocument) { | ||||
|       document.addEventListener('scroll', this.handleScroll); | ||||
|       document.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : undefined); | ||||
|       document.addEventListener('wheel', this.handleWheel,  listenerOptions); | ||||
|     } else { | ||||
|       this.node.addEventListener('scroll', this.handleScroll); | ||||
|       this.node.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : undefined); | ||||
|       this.node.addEventListener('wheel', this.handleWheel, listenerOptions); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   detachScrollListener () { | ||||
|     if (this.props.bindToDocument) { | ||||
|       document.removeEventListener('scroll', this.handleScroll); | ||||
|       document.removeEventListener('wheel', this.handleWheel); | ||||
|       document.removeEventListener('wheel', this.handleWheel, listenerOptions); | ||||
|     } else { | ||||
|       this.node.removeEventListener('scroll', this.handleScroll); | ||||
|       this.node.removeEventListener('wheel', this.handleWheel); | ||||
|       this.node.removeEventListener('wheel', this.handleWheel, listenerOptions); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue