qortal-ui/crypto/config.js

38 lines
745 B
JavaScript
Raw Permalink Normal View History

import { store } from './api'
2021-12-25 14:39:47 +01:00
let config = false
let loaded = false
const configWatchers = []
const waitingForConfig = []
const subscribeToStore = () => {
if (!store) return setTimeout(() => subscribeToStore(), 50)
2021-12-25 14:39:47 +01:00
store.subscribe(() => {
const cA = store.getState().app
const c = store.getState().config
if (!c.loaded) return
if (!loaded) waitingForConfig.forEach(r => r(cA))
configWatchers.forEach(fn => fn(cA))
config = cA
})
2021-12-25 14:39:47 +01:00
}
subscribeToStore()
export function getConfig() {
return config
2021-12-25 14:39:47 +01:00
}
export function watchConfig(fn) {
fn(config)
configWatchers.push(fn)
2021-12-25 14:39:47 +01:00
}
export function waitForConfig() {
return new Promise((resolve, reject) => {
if (config) return resolve(config)
waitingForConfig.push(resolve)
})
}