Disable push notification when not logged in (#19272)
parent
37eaa7fc01
commit
216dbaedaf
5 changed files with 75 additions and 48 deletions
@ -1,7 +1,32 @@ |
||||
export default function ready(loaded) { |
||||
if (['interactive', 'complete'].includes(document.readyState)) { |
||||
loaded(); |
||||
} else { |
||||
document.addEventListener('DOMContentLoaded', loaded); |
||||
} |
||||
// @ts-check
|
||||
|
||||
/** |
||||
* @param {(() => void) | (() => Promise<void>)} callback |
||||
* @returns {Promise<void>} |
||||
*/ |
||||
export default function ready(callback) { |
||||
return new Promise((resolve, reject) => { |
||||
function loaded() { |
||||
let result; |
||||
try { |
||||
result = callback(); |
||||
} catch (err) { |
||||
reject(err); |
||||
|
||||
return; |
||||
} |
||||
|
||||
if (typeof result?.then === 'function') { |
||||
result.then(resolve).catch(reject); |
||||
} else { |
||||
resolve(); |
||||
} |
||||
} |
||||
|
||||
if (['interactive', 'complete'].includes(document.readyState)) { |
||||
loaded(); |
||||
} else { |
||||
document.addEventListener('DOMContentLoaded', loaded); |
||||
} |
||||
}); |
||||
} |
||||
|
Loading…
Reference in new issue