about summary refs log tree commit diff
path: root/src/state/models
diff options
context:
space:
mode:
Diffstat (limited to 'src/state/models')
-rw-r--r--src/state/models/root-store.ts2
-rw-r--r--src/state/models/shell.ts28
2 files changed, 30 insertions, 0 deletions
diff --git a/src/state/models/root-store.ts b/src/state/models/root-store.ts
index 0dab41675..47213f9d1 100644
--- a/src/state/models/root-store.ts
+++ b/src/state/models/root-store.ts
@@ -8,11 +8,13 @@ import {createContext, useContext} from 'react'
 import {isObj, hasProp} from '../lib/type-guards'
 import {SessionModel} from './session'
 import {NavigationModel} from './navigation'
+import {ShellModel} from './shell'
 import {MeModel} from './me'
 
 export class RootStoreModel {
   session = new SessionModel()
   nav = new NavigationModel()
+  shell = new ShellModel()
   me = new MeModel(this)
 
   constructor(public api: AdxClient) {
diff --git a/src/state/models/shell.ts b/src/state/models/shell.ts
new file mode 100644
index 000000000..6755393cd
--- /dev/null
+++ b/src/state/models/shell.ts
@@ -0,0 +1,28 @@
+import {makeAutoObservable} from 'mobx'
+
+export class LinkActionsModel {
+  name = 'link-actions'
+
+  constructor(public href: string, public title: string) {
+    makeAutoObservable(this)
+  }
+}
+
+export class ShellModel {
+  isModalActive = false
+  activeModal: LinkActionsModel | undefined
+
+  constructor() {
+    makeAutoObservable(this)
+  }
+
+  openModal(modal: LinkActionsModel) {
+    this.isModalActive = true
+    this.activeModal = modal
+  }
+
+  closeModal() {
+    this.isModalActive = false
+    this.activeModal = undefined
+  }
+}