about summary refs log tree commit diff
path: root/src/state/models/onboard.ts
diff options
context:
space:
mode:
authorAnsh <anshnanda10@gmail.com>2023-03-02 10:21:33 -0800
committerGitHub <noreply@github.com>2023-03-02 12:21:33 -0600
commitbd9386d81c258d3d3f43666d3e25328f68428689 (patch)
tree8008c5dcfc41f85aac24abac0f6fec08dea6296f /src/state/models/onboard.ts
parent9b46b2e6a9a8e4e9254fa9031b2eb44a672e287f (diff)
downloadvoidsky-bd9386d81c258d3d3f43666d3e25328f68428689.tar.zst
New onboarding (#241)
* delete old onboarding files and code

* add custom FollowButton component to Post, FeedItem, & ProfileCard

* move building suggested feed into helper lib

* show suggested posts/feed if follower list is empty

* Update tsconfig.json

* add pagination to getting new onboarding

* remove unnecessary console log

* fix naming, add better null check for combinedCursor

* In locally-combined feeds, correctly produce an undefined cursor when out of data

* Minor refactors of the suggested posts lib functions

* Show 'follow button' style of post meta in certain conditions only

* Only show follow btn in posts on the main feed and the discovery feed

* Add a welcome notice to the home feed

* Tune the timing of when the welcome banner shows or hides

* Make the follow button an observer (closes #244)

* Update postmeta to keep the follow btn after press until next render

* A couple of fixes that ensure consistent welcome screen

* Fix lint

* Rework the welcome banner

* Fix cache invalidation of follows model on user switch

* Show welcome banner while loading

* Update the home onboarding feed to get top posts from hardcode recommends

* Drop unused helper function

* Update happy path tests

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
Diffstat (limited to 'src/state/models/onboard.ts')
-rw-r--r--src/state/models/onboard.ts65
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]
-    }
-  }
-}