Reorganize state models for clarity (#378)

This commit is contained in:
Paul Frazee 2023-04-03 15:21:17 -05:00 committed by GitHub
parent 9652d994dd
commit 2045c615a8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
44 changed files with 163 additions and 171 deletions

View file

@ -1,7 +1,7 @@
import {makeAutoObservable} from 'mobx'
import {RootStoreModel} from '../root-store'
import {ProfileViewModel} from '../profile-view'
import {FeedModel} from '../feed-view'
import {ProfileModel} from '../content/profile'
import {PostsFeedModel} from '../feeds/posts'
export enum Sections {
Posts = 'Posts',
@ -20,8 +20,8 @@ export class ProfileUiModel {
static EMPTY_ITEM = {_reactKey: '__empty__'}
// data
profile: ProfileViewModel
feed: FeedModel
profile: ProfileModel
feed: PostsFeedModel
// ui state
selectedViewIndex = 0
@ -38,14 +38,14 @@ export class ProfileUiModel {
},
{autoBind: true},
)
this.profile = new ProfileViewModel(rootStore, {actor: params.user})
this.feed = new FeedModel(rootStore, 'author', {
this.profile = new ProfileModel(rootStore, {actor: params.user})
this.feed = new PostsFeedModel(rootStore, 'author', {
actor: params.user,
limit: 10,
})
}
get currentView(): FeedModel {
get currentView(): PostsFeedModel {
if (
this.selectedView === Sections.Posts ||
this.selectedView === Sections.PostsWithReplies
@ -137,7 +137,7 @@ export class ProfileUiModel {
async update() {
const view = this.currentView
if (view instanceof FeedModel) {
if (view instanceof PostsFeedModel) {
await view.update()
}
}

View file

@ -1,7 +1,7 @@
import {AppBskyEmbedRecord} from '@atproto/api'
import {RootStoreModel} from '../root-store'
import {makeAutoObservable} from 'mobx'
import {ProfileViewModel} from '../profile-view'
import {ProfileModel} from '../content/profile'
import {isObj, hasProp} from 'lib/type-guards'
import {PickedMedia} from 'lib/media/types'
@ -14,7 +14,7 @@ export interface ConfirmModal {
export interface EditProfileModal {
name: 'edit-profile'
profileView: ProfileViewModel
profileView: ProfileModel
onUpdate?: () => void
}
@ -77,7 +77,7 @@ interface LightboxModel {}
export class ProfileImageLightbox implements LightboxModel {
name = 'profile-image'
constructor(public profileView: ProfileViewModel) {
constructor(public profileView: ProfileModel) {
makeAutoObservable(this)
}
}