about summary refs log tree commit diff
path: root/src/state/models
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2022-06-09 17:13:29 -0500
committerPaul Frazee <pfrazee@gmail.com>2022-06-09 17:13:29 -0500
commit802222fe7181303d710607129e1c74427f07c97c (patch)
tree169b0878ed5d60f511fcf188df5118c0f446a37d /src/state/models
parentfc3b2952bb59b80665ebb53ffb3377f647ccdbd3 (diff)
downloadvoidsky-802222fe7181303d710607129e1c74427f07c97c.tar.zst
Add auth navigations
Diffstat (limited to 'src/state/models')
-rw-r--r--src/state/models/root-store.ts11
-rw-r--r--src/state/models/session.ts21
2 files changed, 31 insertions, 1 deletions
diff --git a/src/state/models/root-store.ts b/src/state/models/root-store.ts
index 164dfcced..143c59ea1 100644
--- a/src/state/models/root-store.ts
+++ b/src/state/models/root-store.ts
@@ -4,12 +4,21 @@
 
 import {Instance, SnapshotOut, types} from 'mobx-state-tree'
 import {createContext, useContext} from 'react'
+import {SessionModel, createDefaultSession} from './session'
 
-export const RootStoreModel = types.model('RootStore').props({})
+export const RootStoreModel = types.model('RootStore').props({
+  session: SessionModel,
+})
 
 export interface RootStore extends Instance<typeof RootStoreModel> {}
 export interface RootStoreSnapshot extends SnapshotOut<typeof RootStoreModel> {}
 
+export function createDefaultRootStore() {
+  return {
+    session: createDefaultSession(),
+  }
+}
+
 // react context & hook utilities
 const RootStoreContext = createContext<RootStore>({} as RootStore)
 export const RootStoreProvider = RootStoreContext.Provider
diff --git a/src/state/models/session.ts b/src/state/models/session.ts
new file mode 100644
index 000000000..675feb8bc
--- /dev/null
+++ b/src/state/models/session.ts
@@ -0,0 +1,21 @@
+import {Instance, SnapshotOut, types} from 'mobx-state-tree'
+
+export const SessionModel = types
+  .model('Session')
+  .props({
+    isAuthed: types.boolean,
+  })
+  .actions(self => ({
+    setAuthed: (v: boolean) => {
+      self.isAuthed = v
+    },
+  }))
+
+export interface Session extends Instance<typeof SessionModel> {}
+export interface SessionSnapshot extends SnapshotOut<typeof SessionModel> {}
+
+export function createDefaultSession() {
+  return {
+    isAuthed: false,
+  }
+}