Reorganize state models for clarity (#378)
This commit is contained in:
parent
9652d994dd
commit
2045c615a8
44 changed files with 163 additions and 171 deletions
|
@ -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()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue