forked from cybrespace/mastodon
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…
Reference in New Issue