diff --git a/app/helpers/kmyblue_capabilities_helper.rb b/app/helpers/kmyblue_capabilities_helper.rb index 07f22e8db5..2e6187ce26 100644 --- a/app/helpers/kmyblue_capabilities_helper.rb +++ b/app/helpers/kmyblue_capabilities_helper.rb @@ -27,6 +27,7 @@ module KmyblueCapabilitiesHelper capabilities << :enable_wide_emoji_reaction end capabilities << :kmyblue_visibility_public_unlisted if Setting.enable_public_unlisted_visibility + capabilities << :timeline_no_local unless Setting.enable_local_timeline capabilities end @@ -58,6 +59,7 @@ module KmyblueCapabilitiesHelper capabilities << :emoji_reaction capabilities << :enable_wide_emoji_reaction end + capabilities << :timeline_no_local unless Setting.enable_local_timeline capabilities end diff --git a/app/javascript/mastodon/features/about/index.jsx b/app/javascript/mastodon/features/about/index.jsx index 54a684f5ee..1ebf9d2a57 100644 --- a/app/javascript/mastodon/features/about/index.jsx +++ b/app/javascript/mastodon/features/about/index.jsx @@ -25,6 +25,7 @@ const messages = defineMessages({ title: { id: 'column.about', defaultMessage: 'About' }, rules: { id: 'about.rules', defaultMessage: 'Server rules' }, blocks: { id: 'about.blocks', defaultMessage: 'Moderated servers' }, + localTimeline: { id: 'column.community', defaultMessage: 'Local timeline' }, noop: { id: 'about.domain_blocks.noop.title', defaultMessage: 'Soft limited' }, noopExplanation: { id: 'about.domain_blocks.noop.explanation', defaultMessage: 'This server is limited partically.' }, silenced: { id: 'about.domain_blocks.silenced.title', defaultMessage: 'Limited' }, @@ -133,6 +134,7 @@ class About extends PureComponent { const fedibirdCapabilities = server.get('fedibird_capabilities') || []; // thinking about isLoading is true const isPublicUnlistedVisibility = fedibirdCapabilities.includes('kmyblue_visibility_public_unlisted'); const isEmojiReaction = fedibirdCapabilities.includes('emoji_reaction'); + const isLocalTimeline = !fedibirdCapabilities.includes('timeline_no_local'); return ( @@ -204,6 +206,9 @@ class About extends PureComponent {
  • {intl.formatMessage(messages.publicUnlistedVisibility)}: {intl.formatMessage(isPublicUnlistedVisibility ? messages.enabled : messages.disabled)}
  • +
  • + {intl.formatMessage(messages.localTimeline)}: {intl.formatMessage(isLocalTimeline ? messages.enabled : messages.disabled)} +
  • )} diff --git a/app/javascript/mastodon/features/antenna_setting/index.jsx b/app/javascript/mastodon/features/antenna_setting/index.jsx index 4aef6d936d..2863cba921 100644 --- a/app/javascript/mastodon/features/antenna_setting/index.jsx +++ b/app/javascript/mastodon/features/antenna_setting/index.jsx @@ -46,6 +46,7 @@ import ColumnHeader from 'mastodon/components/column_header'; import { Icon } from 'mastodon/components/icon'; import { LoadingIndicator } from 'mastodon/components/loading_indicator'; import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error'; +import { enableLocalTimeline } from 'mastodon/initial_state'; import { WithRouterPropTypes } from 'mastodon/utils/react_router'; import RadioPanel from './components/radio_panel'; @@ -401,7 +402,7 @@ class AntennaSetting extends PureComponent { - {!isLtl && ( + {!isLtl && (enableLocalTimeline || isStl) && (
    )} - {!isStl && ( + {!isStl && (enableLocalTimeline || isLtl) && (