Rework the composer to a less buggy solution

This commit is contained in:
Paul Frazee 2022-11-01 14:25:41 -05:00
parent 05055e184d
commit 8ae6e67eea
10 changed files with 130 additions and 66 deletions

View file

@ -27,22 +27,6 @@ export class SharePostModel {
}
}
export interface ComposePostModelOpts {
replyTo?: Post.PostRef
onPost?: () => void
}
export class ComposePostModel {
name = 'compose-post'
replyTo?: Post.PostRef
onPost?: () => void
constructor(opts?: ComposePostModelOpts) {
makeAutoObservable(this)
this.replyTo = opts?.replyTo
this.onPost = opts?.onPost
}
}
export class EditProfileModel {
name = 'edit-profile'
@ -51,26 +35,22 @@ export class EditProfileModel {
}
}
export interface ComposerOpts {
replyTo?: Post.PostRef
onPost?: () => void
}
export class ShellModel {
isModalActive = false
activeModal:
| LinkActionsModel
| SharePostModel
| ComposePostModel
| EditProfileModel
| undefined
activeModal: LinkActionsModel | SharePostModel | EditProfileModel | undefined
isComposerActive = false
composerOpts: ComposerOpts | undefined
constructor() {
makeAutoObservable(this)
}
openModal(
modal:
| LinkActionsModel
| SharePostModel
| ComposePostModel
| EditProfileModel,
) {
openModal(modal: LinkActionsModel | SharePostModel | EditProfileModel) {
this.isModalActive = true
this.activeModal = modal
}
@ -79,4 +59,14 @@ export class ShellModel {
this.isModalActive = false
this.activeModal = undefined
}
openComposer(opts: ComposerOpts) {
this.isComposerActive = true
this.composerOpts = opts
}
closeComposer() {
this.isComposerActive = false
this.composerOpts = undefined
}
}