package.src.globalState.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sweetalert2 Show documentation
Show all versions of sweetalert2 Show documentation
A beautiful, responsive, customizable and accessible (WAI-ARIA) replacement for JavaScript's popup boxes, supported fork of sweetalert
The newest version!
import { RESTORE_FOCUS_TIMEOUT } from './constants.js'
/** @type {GlobalState} */
const globalState = {}
export default globalState
const focusPreviousActiveElement = () => {
if (globalState.previousActiveElement instanceof HTMLElement) {
globalState.previousActiveElement.focus()
globalState.previousActiveElement = null
} else if (document.body) {
document.body.focus()
}
}
/**
* Restore previous active (focused) element
*
* @param {boolean} returnFocus
* @returns {Promise}
*/
export const restoreActiveElement = (returnFocus) => {
return new Promise((resolve) => {
if (!returnFocus) {
return resolve()
}
const x = window.scrollX
const y = window.scrollY
globalState.restoreFocusTimeout = setTimeout(() => {
focusPreviousActiveElement()
resolve()
}, RESTORE_FOCUS_TIMEOUT) // issues/900
window.scrollTo(x, y)
})
}