diff --git a/src/common/SharePrompt/SharePrompt.js b/src/common/SharePrompt/SharePrompt.js index 5808cac69..5996f80cf 100644 --- a/src/common/SharePrompt/SharePrompt.js +++ b/src/common/SharePrompt/SharePrompt.js @@ -2,38 +2,48 @@ const React = require('react'); const PropTypes = require('prop-types'); const classnames = require('classnames'); const Icon = require('stremio-icons/dom'); +const { useFocusable } = require('stremio-router'); const Button = require('stremio/common/Button'); const TextInput = require('stremio/common/TextInput'); const styles = require('./styles'); -const SharePrompt = (props) => { +const SharePrompt = ({ className, label, url, close }) => { const inputRef = React.useRef(null); - const copyToClipboard = () => { + const focusable = useFocusable(); + const copyToClipboard = React.useCallback(() => { inputRef.current.select(); document.execCommand('copy'); - }; - - if (props.url.length === 0) { - return null; - } - + }, []); + React.useEffect(() => { + const onKeyUp = (event) => { + if (event.key === 'Escape') { + cancel(); + } + }; + if (focusable) { + window.addEventListener('keyup', onKeyUp); + } + return () => { + window.removeEventListener('keyup', onKeyUp); + }; + }, [close, focusable]); return ( -