diff options
author | Paul Frazee <pfrazee@gmail.com> | 2022-11-01 14:25:41 -0500 |
---|---|---|
committer | Paul Frazee <pfrazee@gmail.com> | 2022-11-01 14:25:41 -0500 |
commit | 8ae6e67eea8890f639dbaa9423e99cad5e28502f (patch) | |
tree | 720f9e4a4fdd5e394acd74b2d62676dc8c7b8ebc /src/state/models/shell.ts | |
parent | 05055e184dbd1d103fc8bfc74ba86f0757937b14 (diff) | |
download | voidsky-8ae6e67eea8890f639dbaa9423e99cad5e28502f.tar.zst |
Rework the composer to a less buggy solution
Diffstat (limited to 'src/state/models/shell.ts')
-rw-r--r-- | src/state/models/shell.ts | 48 |
1 files changed, 19 insertions, 29 deletions
diff --git a/src/state/models/shell.ts b/src/state/models/shell.ts index 8cb0ff9e7..33b8eef36 100644 --- a/src/state/models/shell.ts +++ b/src/state/models/shell.ts @@ -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 + } } |