about summary refs log tree commit diff
path: root/src/state/models/shell.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/state/models/shell.ts')
-rw-r--r--src/state/models/shell.ts48
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
+  }
 }