about summary refs log tree commit diff
path: root/src/state/models/ui/preferences.ts
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2023-09-19 19:08:11 -0700
committerGitHub <noreply@github.com>2023-09-19 19:08:11 -0700
commit1af8e83d536cf6a9db128409c8e00a0b44d9a985 (patch)
tree13b8bfcee3a7f6942b1ed0cb320d0cdb1f09495e /src/state/models/ui/preferences.ts
parentd2c253a284b3341e92ae104e49f2584602795575 (diff)
downloadvoidsky-1af8e83d536cf6a9db128409c8e00a0b44d9a985.tar.zst
Tree view threads experiment (#1480)
* Add tree-view experiment to threads

* Fix typo

* Remove extra minimalshellmode call

* Fix to parent line rendering

* Fix extra border

* Some ui cleanup
Diffstat (limited to 'src/state/models/ui/preferences.ts')
-rw-r--r--src/state/models/ui/preferences.ts15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/state/models/ui/preferences.ts b/src/state/models/ui/preferences.ts
index 03f08bc1b..5c6ea230b 100644
--- a/src/state/models/ui/preferences.ts
+++ b/src/state/models/ui/preferences.ts
@@ -58,6 +58,7 @@ export class PreferencesModel {
   homeFeedMergeFeedEnabled: boolean = false
   threadDefaultSort: string = 'oldest'
   threadFollowedUsersFirst: boolean = true
+  threadTreeViewEnabled: boolean = false
   requireAltTextEnabled: boolean = false
 
   // used to linearize async modifications to state
@@ -91,6 +92,7 @@ export class PreferencesModel {
       homeFeedMergeFeedEnabled: this.homeFeedMergeFeedEnabled,
       threadDefaultSort: this.threadDefaultSort,
       threadFollowedUsersFirst: this.threadFollowedUsersFirst,
+      threadTreeViewEnabled: this.threadTreeViewEnabled,
       requireAltTextEnabled: this.requireAltTextEnabled,
     }
   }
@@ -202,13 +204,20 @@ export class PreferencesModel {
       ) {
         this.threadDefaultSort = v.threadDefaultSort
       }
-      // check if tread followed-users-first is enabled in preferences, then hydrate
+      // check if thread followed-users-first is enabled in preferences, then hydrate
       if (
         hasProp(v, 'threadFollowedUsersFirst') &&
         typeof v.threadFollowedUsersFirst === 'boolean'
       ) {
         this.threadFollowedUsersFirst = v.threadFollowedUsersFirst
       }
+      // check if thread treeview is enabled in preferences, then hydrate
+      if (
+        hasProp(v, 'threadTreeViewEnabled') &&
+        typeof v.threadTreeViewEnabled === 'boolean'
+      ) {
+        this.threadTreeViewEnabled = v.threadTreeViewEnabled
+      }
       // check if requiring alt text is enabled in preferences, then hydrate
       if (
         hasProp(v, 'requireAltTextEnabled') &&
@@ -524,6 +533,10 @@ export class PreferencesModel {
     this.threadFollowedUsersFirst = !this.threadFollowedUsersFirst
   }
 
+  toggleThreadTreeViewEnabled() {
+    this.threadTreeViewEnabled = !this.threadTreeViewEnabled
+  }
+
   toggleRequireAltTextEnabled() {
     this.requireAltTextEnabled = !this.requireAltTextEnabled
   }