handle focus for iframe

This commit is contained in:
Kévin Cocchi 2022-02-06 18:41:40 +01:00
parent 26ab8e2821
commit 9b87f7436f

View File

@ -32,16 +32,34 @@ export class SearchBox extends Component {
this.value = props.value
this.onSearch = props.onSearch
this.onReset = props.onReset
this.hasBeenFocused = false
this.focusInput = this.focusInput.bind(this)
this.search = this.search.bind(this)
this.clearSearch = this.clearSearch.bind(this)
}
componentDidMount() {
// hack required for firefox
focusInput() {
const inputInWebView = document.querySelector('.search-box input')
if (inputInWebView && this.autofocus) {
inputInWebView.focus()
this.hasBeenFocused = true
}
}
componentDidMount() {
this.focusInput()
}
componentDidUpdate() {
// check if we're in an iframe (Element desktop)
if (window.self !== window.top) {
// check if the iframe is not closed
if (document.querySelector('.search-box').offsetParent === null) {
this.focusInput()
} else {
this.hasBeenFocused = false
}
}
}