@obatfr/sweetalert2
Version:
A beautiful, responsive, customizable and accessible (WAI-ARIA) replacement for JavaScript's popup boxes, supported fork of sweetalert
31 lines (26 loc) • 901 B
JavaScript
import { RESTORE_FOCUS_TIMEOUT } from './constants.js'
const globalState = {}
export default globalState
const focusPreviousActiveElement = () => {
if (globalState.previousActiveElement && globalState.previousActiveElement.focus) {
globalState.previousActiveElement.focus()
globalState.previousActiveElement = null
} else if (document.body) {
document.body.focus()
}
}
// Restore previous active (focused) element
export const restoreActiveElement = () => {
return new Promise(resolve => {
const x = window.scrollX
const y = window.scrollY
globalState.restoreFocusTimeout = setTimeout(() => {
focusPreviousActiveElement()
resolve()
}, RESTORE_FOCUS_TIMEOUT) // issues/900
/* istanbul ignore if */
if (typeof x !== 'undefined' && typeof y !== 'undefined') { // IE doesn't have scrollX/scrollY support
window.scrollTo(x, y)
}
})
}