diff options
author | ThibG <thib@sitedethib.com> | 2019-12-01 13:13:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-01 13:13:28 +0100 |
commit | 7d59e25fbd7a0209c11cbe6aac4400bbca4de82b (patch) | |
tree | fc21c09cd6e0e8a666655df8b7f6802745a7e473 /app/javascript/flavours/glitch/components | |
parent | 7f6315841c98a1eee6cb57171a91a88f5c5343df (diff) | |
parent | fae7e0cacec60094dc1ce78d9f63b19b1cacde2d (diff) |
Merge pull request #1250 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/javascript/flavours/glitch/components')
-rw-r--r-- | app/javascript/flavours/glitch/components/modal_root.js | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/app/javascript/flavours/glitch/components/modal_root.js b/app/javascript/flavours/glitch/components/modal_root.js index e73ef8d12..f9877d5ea 100644 --- a/app/javascript/flavours/glitch/components/modal_root.js +++ b/app/javascript/flavours/glitch/components/modal_root.js @@ -62,15 +62,22 @@ export default class ModalRoot extends React.PureComponent { } else if (!nextProps.children) { this.setState({ revealed: false }); } - if (!nextProps.children && !!this.props.children) { - this.activeElement.focus({ preventScroll: true }); - this.activeElement = null; - } } componentDidUpdate (prevProps) { if (!this.props.children && !!prevProps.children) { this.getSiblings().forEach(sibling => sibling.removeAttribute('inert')); + + // Because of the wicg-inert polyfill, the activeElement may not be + // immediately selectable, we have to wait for observers to run, as + // described in https://github.com/WICG/inert#performance-and-gotchas + Promise.resolve().then(() => { + this.activeElement.focus({ preventScroll: true }); + this.activeElement = null; + }).catch((error) => { + console.error(error); + }); + this.handleModalClose(); } if (this.props.children) { |