added withEvent method

This commit is contained in:
srgooglo 2022-05-12 16:52:08 +02:00
parent ac6e8c9129
commit c33003b3c6

View File

@ -1,6 +1,7 @@
import { Extension } from "evite" import { Extension } from "evite"
import store from "store" import store from "store"
import defaultSettings from "schemas/defaultSettings.json" import defaultSettings from "schemas/defaultSettings.json"
import { Observable } from "rxjs"
export default class SettingsExtension extends Extension { export default class SettingsExtension extends Extension {
constructor(app, main) { constructor(app, main) {
@ -52,6 +53,23 @@ export default class SettingsExtension extends Extension {
return this.settings[key] return this.settings[key]
} }
withEvent = (listenEvent, defaultValue) => {
let value = defaultValue ?? this.settings[key] ?? false
const observable = new Observable((subscriber) => {
subscriber.next(value)
window.app.eventBus.on(listenEvent, (to) => {
value = to
subscriber.next(value)
})
})
return observable.subscribe((value) => {
return value
})
}
window = { window = {
"settings": this "settings": this
} }