Fix opening the emoji picker scrolling the single-column view to the top (#17579)
Fixes #17577
This commit is contained in:
		
							parent
							
								
									00b45b967e
								
							
						
					
					
						commit
						aa86cf9557
					
				@ -170,7 +170,7 @@ class EmojiPickerMenu extends React.PureComponent {
 | 
			
		||||
 | 
			
		||||
  state = {
 | 
			
		||||
    modifierOpen: false,
 | 
			
		||||
    placement: null,
 | 
			
		||||
    readyToFocus: false,
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  handleDocumentClick = e => {
 | 
			
		||||
@ -182,6 +182,16 @@ class EmojiPickerMenu extends React.PureComponent {
 | 
			
		||||
  componentDidMount () {
 | 
			
		||||
    document.addEventListener('click', this.handleDocumentClick, false);
 | 
			
		||||
    document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);
 | 
			
		||||
 | 
			
		||||
    // Because of https://github.com/react-bootstrap/react-bootstrap/issues/2614 we need
 | 
			
		||||
    // to wait for a frame before focusing
 | 
			
		||||
    requestAnimationFrame(() => {
 | 
			
		||||
      this.setState({ readyToFocus: true });
 | 
			
		||||
      if (this.node) {
 | 
			
		||||
        const element = this.node.querySelector('input[type="search"]');
 | 
			
		||||
        if (element) element.focus();
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  componentWillUnmount () {
 | 
			
		||||
@ -281,7 +291,7 @@ class EmojiPickerMenu extends React.PureComponent {
 | 
			
		||||
          showSkinTones={false}
 | 
			
		||||
          backgroundImageFn={backgroundImageFn}
 | 
			
		||||
          notFound={notFoundFn}
 | 
			
		||||
          autoFocus
 | 
			
		||||
          autoFocus={this.state.readyToFocus}
 | 
			
		||||
          emojiTooltip
 | 
			
		||||
        />
 | 
			
		||||
 | 
			
		||||
@ -314,6 +324,7 @@ class EmojiPickerDropdown extends React.PureComponent {
 | 
			
		||||
  state = {
 | 
			
		||||
    active: false,
 | 
			
		||||
    loading: false,
 | 
			
		||||
    placement: null,
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  setRef = (c) => {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user