mtcute/packages/web/src/exit-hook.ts

22 lines
414 B
TypeScript
Raw Normal View History

const callbacks = new Set<() => void>()
let registered = false
export function beforeExit(fn: () => void): () => void {
if (!registered) {
registered = true
window.addEventListener('beforeunload', () => {
for (const callback of callbacks) {
callback()
}
})
}
callbacks.add(fn)
return () => {
callbacks.delete(fn)
}
}