31 lines
622 B
TypeScript
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)
|
|
}
|
|
}
|
|
}
|