summaryrefslogtreecommitdiff
path: root/app/models/root-store/setup-root-store.ts
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/root-store/setup-root-store.ts')
-rw-r--r--app/models/root-store/setup-root-store.ts57
1 files changed, 0 insertions, 57 deletions
diff --git a/app/models/root-store/setup-root-store.ts b/app/models/root-store/setup-root-store.ts
deleted file mode 100644
index b1a741b..0000000
--- a/app/models/root-store/setup-root-store.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-import { onSnapshot } from 'mobx-state-tree'
-import { RootStoreModel, RootStore } from './root-store'
-import { Environment } from '../environment'
-import * as storage from '../../utils/storage'
-
-/**
- * The key we'll be saving our state as within async storage.
- */
-const ROOT_STATE_STORAGE_KEY = 'root'
-
-/**
- * Setup the environment that all the models will be sharing.
- *
- * The environment includes other functions that will be picked from some
- * of the models that get created later. This is how we loosly couple things
- * like events between models.
- */
-export async function createEnvironment() {
- const env = new Environment()
- await env.setup()
- return env
-}
-
-/**
- * Setup the root state.
- */
-export async function setupRootStore() {
- let rootStore: RootStore
- let data: any
-
- // prepare the environment that will be associated with the RootStore.
- const env = await createEnvironment()
- try {
- // load data from storage
- data = (await storage.load(ROOT_STATE_STORAGE_KEY)) || {}
- rootStore = RootStoreModel.create(data, env)
- } catch (e) {
- // if there's any problems loading, then let's at least fallback to an empty state
- // instead of crashing.
- rootStore = RootStoreModel.create({}, env)
-
- // but please inform us what happened
- __DEV__ && console.tron.error(e.message, null)
- }
-
- // reactotron logging
- if (__DEV__) {
- env.reactotron.setRootStore(rootStore, data)
- }
-
- // track changes & save to storage
- onSnapshot(rootStore, (snapshot) =>
- storage.save(ROOT_STATE_STORAGE_KEY, snapshot),
- )
-
- return rootStore
-}