Add auth navigations

This commit is contained in:
Paul Frazee 2022-06-09 17:13:29 -05:00
parent fc3b2952bb
commit 802222fe71
11 changed files with 129 additions and 25 deletions

View file

@ -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

View file

@ -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,
}
}