diff options
author | Ansh <anshnanda10@gmail.com> | 2023-03-02 10:21:33 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-02 12:21:33 -0600 |
commit | bd9386d81c258d3d3f43666d3e25328f68428689 (patch) | |
tree | 8008c5dcfc41f85aac24abac0f6fec08dea6296f /src/state/models/onboard.ts | |
parent | 9b46b2e6a9a8e4e9254fa9031b2eb44a672e287f (diff) | |
download | voidsky-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.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] - } - } -} |