diff options
Diffstat (limited to 'src/state/models/onboard.ts')
-rw-r--r-- | src/state/models/onboard.ts | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/src/state/models/onboard.ts b/src/state/models/onboard.ts deleted file mode 100644 index aa275c6b7..000000000 --- a/src/state/models/onboard.ts +++ /dev/null @@ -1,65 +0,0 @@ -import {makeAutoObservable} from 'mobx' -import {isObj, hasProp} from 'lib/type-guards' - -export const OnboardStage = { - Explainers: 'explainers', - Follows: 'follows', -} - -export const OnboardStageOrder = [OnboardStage.Explainers, OnboardStage.Follows] - -export class OnboardModel { - isOnboarding: boolean = false - stage: string = OnboardStageOrder[0] - - constructor() { - makeAutoObservable(this, { - serialize: false, - hydrate: false, - }) - } - - serialize(): unknown { - return { - isOnboarding: this.isOnboarding, - stage: this.stage, - } - } - - hydrate(v: unknown) { - if (isObj(v)) { - if (hasProp(v, 'isOnboarding') && typeof v.isOnboarding === 'boolean') { - this.isOnboarding = v.isOnboarding - } - if ( - hasProp(v, 'stage') && - typeof v.stage === 'string' && - OnboardStageOrder.includes(v.stage) - ) { - this.stage = v.stage - } - } - } - - start() { - this.isOnboarding = true - } - - stop() { - this.isOnboarding = false - } - - next() { - if (!this.isOnboarding) { - return - } - let i = OnboardStageOrder.indexOf(this.stage) - i++ - if (i >= OnboardStageOrder.length) { - this.isOnboarding = false - this.stage = OnboardStageOrder[0] // in case they make a new account - } else { - this.stage = OnboardStageOrder[i] - } - } -} |