Files
standardnotes-app-web/app/assets/javascripts/services/statusManager.ts
2020-09-29 12:08:19 +02:00

31 lines
618 B
TypeScript

import { removeFromArray } from '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);
}
}
}