diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js
index b5f2d7f02..a31925f4c 100644
--- a/app/javascript/mastodon/features/status/index.js
+++ b/app/javascript/mastodon/features/status/index.js
@@ -53,7 +53,7 @@ import { openModal } from '../../actions/modal';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { HotKeys } from 'react-hotkeys';
-import { boostModal, deleteModal } from '../../initial_state';
+import { boostModal, deleteModal, treeAcct } from '../../initial_state';
import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../ui/util/fullscreen';
import { textForScreenReader, defaultMediaVisibility } from '../../components/status';
import Icon from 'mastodon/components/icon';
@@ -160,9 +160,10 @@ const makeMapStateToProps = () => {
if (status) {
ancestorsIds = getAncestorsIds(state, { id: status.get('in_reply_to_id') });
- const root_status = ancestorsIds.size? getStatus(state, {id: ancestorsIds.get(0)}) : status; //error is directly visit url of non-root detailedStatus, feature!
- rootAcct = root_status? root_status.getIn(['account', 'acct']) : -1;
- if(rootAcct == '0') {
+ const root_status = ancestorsIds.size? getStatus(state, {id: ancestorsIds.get(0)}) : status;
+ rootAcct = root_status? root_status.getIn(['account', 'id']) : null;
+ if(rootAcct == treeAcct) {
+ deep = ancestorsIds.size;
descendantsIds = state.getIn(['contexts', 'replies', status.get('id')]);
if(descendantsIds)
descendantsIds = descendantsIds.reverse();
@@ -170,8 +171,7 @@ const makeMapStateToProps = () => {
else {
descendantsIds = getDescendantsIds(state, { id: status.get('id') });
}
- deep = rootAcct == '0' ? ancestorsIds.size : null;
- treeData = rootAcct == '0' ? getTreeData(state, {id: status.get('id')}) : null;
+ treeData = getTreeData(state, {id: status.get('id')})
}
return {
@@ -592,7 +592,7 @@ class Status extends ImmutablePureComponent {
showBackButton
multiColumn={multiColumn}
extraButton={(
-
+
)}
/>
diff --git a/app/javascript/mastodon/initial_state.js b/app/javascript/mastodon/initial_state.js
index f796fa850..7551059dc 100644
--- a/app/javascript/mastodon/initial_state.js
+++ b/app/javascript/mastodon/initial_state.js
@@ -27,5 +27,6 @@ export const title = getMeta('title');
export const cropImages = getMeta('crop_images');
export const treeRoot = getMeta('tree_root');
+export const treeAcct = getMeta('tree_acct')
export default initialState;
diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb
index 646e0f13d..ef1dded72 100644
--- a/app/serializers/initial_state_serializer.rb
+++ b/app/serializers/initial_state_serializer.rb
@@ -22,7 +22,8 @@ class InitialStateSerializer < ActiveModel::Serializer
mascot: instance_presenter.mascot&.file&.url,
profile_directory: Setting.profile_directory,
trends: Setting.trends,
- tree_root: Rails.configuration.x.tree_address,
+ tree_root: Rails.configuration.x.tree_address,
+ tree_acct: Rails.configuration.x.tree_acc
}
if object.current_account
diff --git a/config/initializers/new_features.rb b/config/initializers/new_features.rb
index f638b4781..3a7efa758 100644
--- a/config/initializers/new_features.rb
+++ b/config/initializers/new_features.rb
@@ -3,6 +3,7 @@
Rails.application.configure do
config.x.email_default_domain = ENV.fetch('EMAIL_DEFAULT_DOMAIN') { '???.edu.cn' }
config.x.tree_address = ENV.fetch('TREE_ADDRESS') {''}
+ config.x.tree_acc = ENV.fetch('TREE_ACC') {'0'}
config.x.anon_tag = ENV.fetch('ANON_TAG') {'[mask]'}
config.x.anon_acc = ENV.fetch('ANON_ACC') {nil}
config.x.anon_namelist = ENV.fetch('ANON_NAME_LIST') {nil}