logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe git clone https://hacktivis.me/git/pleroma-fe.git
commit: 2e54cf12c76e94f980fbe49f58c080a4a3d17ca4
parent ff5f69b8fd781d2fc8175c074f30aa35c0fea55c
Author: Tusooa Zhu <tusooa@kazv.moe>
Date:   Sat,  7 Aug 2021 20:14:14 -0400

Add settings for max depth in thread

Diffstat:

Msrc/components/conversation/conversation.js15++++++++++-----
Msrc/components/settings_modal/tabs/general_tab.vue13+++++++++++++
Msrc/modules/config.js3++-
Msrc/modules/instance.js1+
4 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js @@ -74,7 +74,11 @@ const conversation = { }, computed: { maxDepthToShowByDefault () { - return 4 + // maxDepthInThread = max number of depths that is *visible* + // since our depth starts with 0 and "showing" means "showing children" + // there is a -2 here + const maxDepth = this.$store.getters.mergedConfig.maxDepthInThread - 2 + return maxDepth >= 1 ? maxDepth : 1 }, displayStyle () { return this.$store.getters.mergedConfig.conversationDisplay @@ -351,7 +355,8 @@ const conversation = { } this._diven = true const parentOrSelf = this.parentOrSelf(this.originalStatusId) - if (this.threadDisplayStatus[this.statusId] === 'hidden') { + // If current status is not visible + if (this.threadDisplayStatus[parentOrSelf] === 'hidden') { this.diveIntoStatus(parentOrSelf, /* preventScroll */ true) this.tryScrollTo(this.statusId) } @@ -429,7 +434,7 @@ const conversation = { toggleStatusContentProperty (id, name) { this.setStatusContentProperty(id, name, !this.statusContentProperties[id][name]) }, - leastShowingAncestor (id) { + leastVisibleAncestor (id) { let cur = id let parent = this.parentOf(cur) while (cur) { @@ -453,14 +458,14 @@ const conversation = { const oldHighlight = this.highlight this.diveHistory = [...this.diveHistory.slice(0, this.diveHistory.length - 1)] if (oldHighlight) { - this.tryScrollTo(this.leastShowingAncestor(oldHighlight)) + this.tryScrollTo(this.leastVisibleAncestor(oldHighlight)) } }, undive () { const oldHighlight = this.highlight this.diveHistory = [] if (oldHighlight) { - this.tryScrollTo(this.leastShowingAncestor(oldHighlight)) + this.tryScrollTo(this.leastVisibleAncestor(oldHighlight)) } else { this.goToCurrent() } diff --git a/src/components/settings_modal/tabs/general_tab.vue b/src/components/settings_modal/tabs/general_tab.vue @@ -161,6 +161,19 @@ {{ $t('settings.conversation_display') }} </ChoiceSetting> </li> + <li v-if="conversationDisplay !== 'linear'"> + <label for="maxDepthInThread"> + {{ $t('settings.max_depth_in_thread') }} + </label> + <input + id="maxDepthInThread" + path.number="maxDepthInThread" + class="number-input" + type="number" + min="3" + step="1" + > + </li> <li> <ChoiceSetting id="mentionLinkDisplay" diff --git a/src/modules/config.js b/src/modules/config.js @@ -83,7 +83,8 @@ export const defaultState = { hideUserStats: undefined, // instance default virtualScrolling: undefined, // instance default sensitiveByDefault: undefined, // instance default - conversationDisplay: undefined // instance default + conversationDisplay: undefined, // instance default + maxDepthInThread: 6 } // caching the instance default properties diff --git a/src/modules/instance.js b/src/modules/instance.js @@ -54,6 +54,7 @@ const defaultState = { virtualScrolling: true, sensitiveByDefault: false, conversationDisplay: 'simple_tree', + maxDepthInThread: 6, // Nasty stuff customEmoji: [],