refactor: format and lint codebase (#971)
This commit is contained in:
30
app/assets/javascripts/Services/StatusManager.ts
Normal file
30
app/assets/javascripts/Services/StatusManager.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user