Files
standardnotes-app-web/app/assets/javascripts/Services/StatusManager.ts
2022-04-13 22:02:34 +05:30

31 lines
622 B
TypeScript

import { removeFromArray } from '@standardnotes/snjs'
type StatusCallback = (string: string) => void
export class StatusManager {
private _message = ''
private observers: StatusCallback[] = []
get message(): string {
return this._message
}
setMessage(message: string) {
this._message = message
this.notifyObservers()
}
onStatusChange(callback: StatusCallback) {
this.observers.push(callback)
return () => {
removeFromArray(this.observers, callback)
}
}
private notifyObservers() {
for (const observer of this.observers) {
observer(this._message)
}
}
}