Files
standardnotes-app-web/packages/web/src/javascripts/NativeMobileWeb/AndroidBackHandler.tsx
2022-09-28 12:12:55 +05:30

23 lines
444 B
TypeScript

type Listener = () => boolean
type RemoveListener = () => void
export class AndroidBackHandler {
private listeners = new Set<Listener>()
addEventListener(listener: Listener): RemoveListener {
this.listeners.add(listener)
return () => {
this.listeners.delete(listener)
}
}
notifyEvent() {
for (const listener of Array.from(this.listeners).reverse()) {
if (listener()) {
return
}
}
}
}