diff --git a/app/javascript/mastodon/components/modal_root.jsx b/app/javascript/mastodon/components/modal_root.jsx index 88a7ac11893..3a79fce9fd9 100644 --- a/app/javascript/mastodon/components/modal_root.jsx +++ b/app/javascript/mastodon/components/modal_root.jsx @@ -59,6 +59,13 @@ class ModalRoot extends PureComponent { } }; + handleBackgroundClick = (e) => { + // Close modal, but only when clicking outside of the modal's content + if (!e.target.matches('.modal-root__container *')) { + this.props.onClose(); + } + } + componentDidMount () { window.addEventListener('keydown', this.handleKeyDown, false); this.history = this.props.history || createBrowserHistory(); @@ -137,7 +144,7 @@ class ModalRoot extends PureComponent { }; render () { - const { children, onClose } = this.props; + const { children } = this.props; const visible = !!children; if (!visible) { @@ -156,9 +163,10 @@ class ModalRoot extends PureComponent { } return ( -
-
-
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions +
+
+
{children}
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 0fe1a1cb2c0..8b3f34668aa 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -6095,8 +6095,6 @@ a.status-card { box-sizing: border-box; display: flex; z-index: 9999; - pointer-events: none; - user-select: none; overscroll-behavior: none; overflow-y: auto; @@ -6111,8 +6109,6 @@ a.status-card { } .modal-root__modal { - pointer-events: auto; - user-select: text; display: flex; max-width: 100vw;