1
0
mirror of https://github.com/nolanlawson/pinafore synced 2025-01-27 12:09:18 +01:00

58 lines
1.4 KiB
JavaScript
Raw Normal View History

2018-03-03 14:15:50 -08:00
import { observers } from './observers/observers'
import { computations } from './computations/computations'
import { mixins } from './mixins/mixins'
2018-01-28 13:09:39 -08:00
import { LocalStorageStore } from './LocalStorageStore'
const KEYS_TO_STORE_IN_LOCAL_STORAGE = new Set([
2018-02-08 22:29:29 -08:00
'currentInstance',
'currentRegisteredInstance',
'currentRegisteredInstanceName',
'instanceNameInSearch',
'instanceThemes',
'loggedInInstances',
'loggedInInstancesInOrder',
'autoplayGifs',
'markMediaAsSensitive',
2018-03-22 20:23:00 -07:00
'reduceMotion',
2018-02-25 16:26:43 -08:00
'pinnedPages',
2018-03-03 14:15:50 -08:00
'composeData'
2018-01-28 13:09:39 -08:00
])
class PinaforeStore extends LocalStorageStore {
2018-02-08 22:29:29 -08:00
constructor (state) {
2018-01-28 13:09:39 -08:00
super(state, KEYS_TO_STORE_IN_LOCAL_STORAGE)
}
}
2018-02-19 20:15:24 -08:00
export const store = new PinaforeStore({
2018-01-28 13:09:39 -08:00
instanceNameInSearch: '',
2018-02-06 20:54:49 -08:00
queryInSearch: '',
2018-01-28 13:09:39 -08:00
currentInstance: null,
loggedInInstances: {},
loggedInInstancesInOrder: [],
instanceThemes: {},
spoilersShown: {},
sensitivesShown: {},
2018-03-30 01:06:17 -07:00
repliesShown: {},
autoplayGifs: false,
markMediaAsSensitive: false,
2018-03-22 20:23:00 -07:00
reduceMotion: false,
2018-02-08 09:15:25 -08:00
pinnedPages: {},
2018-02-11 10:35:25 -08:00
instanceLists: {},
2018-02-11 13:46:57 -08:00
pinnedStatuses: {},
2018-02-23 18:23:36 -08:00
instanceInfos: {},
2018-02-25 16:26:43 -08:00
statusModifications: {},
customEmoji: {},
2018-03-03 14:15:50 -08:00
composeData: {},
2018-03-08 18:08:14 -08:00
verifyCredentials: {},
online: !process.browser || navigator.onLine
2018-01-28 13:09:39 -08:00
})
mixins(PinaforeStore)
computations(store)
2018-02-20 21:29:59 -08:00
observers(store)
2018-01-28 13:09:39 -08:00
2018-02-19 20:15:24 -08:00
if (process.browser && process.env.NODE_ENV !== 'production') {
window.store = store // for debugging
2018-02-19 20:28:31 -08:00
}