1
0
mirror of https://github.com/nolanlawson/pinafore synced 2024-12-13 10:48:19 +01:00
Pinafore-Web-Client-Frontend/routes/_store/store.js

42 lines
979 B
JavaScript
Raw Normal View History

2018-01-28 22:09:39 +01:00
import { observers } from './obsevers'
import { computations } from './computations'
import { mixins } from './mixins'
import { LocalStorageStore } from './LocalStorageStore'
const KEYS_TO_STORE_IN_LOCAL_STORAGE = new Set([
"currentInstance",
"currentRegisteredInstance",
"currentRegisteredInstanceName",
"instanceNameInSearch",
"instanceThemes",
"loggedInInstances",
"loggedInInstancesInOrder",
"autoplayGifs"
2018-01-28 22:09:39 +01:00
])
class PinaforeStore extends LocalStorageStore {
constructor(state) {
super(state, KEYS_TO_STORE_IN_LOCAL_STORAGE)
}
}
const store = new PinaforeStore({
instanceNameInSearch: '',
currentInstance: null,
loggedInInstances: {},
loggedInInstancesInOrder: [],
instanceThemes: {},
spoilersShown: {},
sensitivesShown: {},
autoplayGifs: false,
2018-01-28 22:09:39 +01:00
})
mixins(PinaforeStore)
computations(store)
observers(store)
if (process.browser && process.env.NODE_ENV !== 'production') {
window.store = store // for debugging
}
export { store }