diff --git a/package-lock.json b/package-lock.json index bc3398a72..337893635 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@sttm/web", - "version": "1.1.10", + "version": "1.1.11", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 34f792152..c35b517ed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@sttm/web", - "version": "1.1.10", + "version": "1.1.11", "description": "Sevadaars are currently working hard to build a newer version of SikhiToTheMax website using modern web technologies.", "main": "index.js", "scripts": { diff --git a/src/js/components/GurmukhiKeyboard.js b/src/js/components/GurmukhiKeyboard.js index e7a21aa8a..d47f5c399 100644 --- a/src/js/components/GurmukhiKeyboard.js +++ b/src/js/components/GurmukhiKeyboard.js @@ -53,10 +53,18 @@ export default class GurmukhiKeyboard extends React.PureComponent { }; componentDidMount() { - addEventListener('click', this.windowEventListener); + addEventListener('click', this.closeOnOutsideClick); } - windowEventListener = ({ path = [] }) => { + closeOnOutsideClick = e => { + const path = + typeof e.composedPath === 'function' ? e.composedPath() : e.path || []; + + // If path is empty, let's assume browser doesn't support it and don't do anything. + if (path.length === 0) { + return; + } + if ( path.some( ({ classList = null }) => @@ -71,7 +79,7 @@ export default class GurmukhiKeyboard extends React.PureComponent { }; componentWillUnmount() { - removeEventListener('click', this.windowEventListener); + removeEventListener('click', this.closeOnOutsideClick); } render() {