diff --git a/app/javascript/mastodon/features/firehose/index.jsx b/app/javascript/mastodon/features/firehose/index.jsx index 5b92b0b4319..b42816cf399 100644 --- a/app/javascript/mastodon/features/firehose/index.jsx +++ b/app/javascript/mastodon/features/firehose/index.jsx @@ -35,7 +35,8 @@ const messages = defineMessages({ id: 'column.firehose_singular', defaultMessage: 'Live feed', }, - title_redesign: { id: 'tabs_bar.fediverse_feeds', defaultMessage: 'Fediverse Feeds' }, + title_redesign: { id: 'tabs_bar.public_feeds', defaultMessage: 'Public Feeds' }, + title_singular_redesign: { id: 'tabs_bar.public_feed', defaultMessage: 'Public Feed' }, }); const ColumnSettings = () => { @@ -170,21 +171,31 @@ const Firehose = ({ feedType, multiColumn }) => { /> ); - let title; + const canViewLocalFeed = canViewFeed(signedIn, permissions, localLiveFeedAccess); + const canViewRemoteFeed = canViewFeed(signedIn, permissions, remoteLiveFeedAccess); - if (canViewFeed(signedIn, permissions, localLiveFeedAccess) && canViewFeed(signedIn, permissions, remoteLiveFeedAccess)) { + let title; + if (canViewLocalFeed && canViewRemoteFeed) { title = messages.title; - } else if (canViewFeed(signedIn, permissions, localLiveFeedAccess)) { + } else if (canViewLocalFeed) { title = messages.title_local; } else { title = messages.title_singular; } + if (isRedesignEnabled()) { + const canOnlyViewSingleFeed = canViewLocalFeed !== canViewRemoteFeed; + + title = canOnlyViewSingleFeed + ? intl.formatMessage(messages.title_singular_redesign) + : intl.formatMessage(messages.title_redesign); + } + return ( {isRedesignEnabled() ? ( - - - - - - + + )} {!signedIn && ( -
- {disabledAccountId ? : } - -
+ <> +
    + + + + + +
+
+ {disabledAccountId ? : } + +
+ )} {bottomSensor} ); }; +const ExploreLink: React.FC = () => { + return ( + + + + ); +}; + +const PublicFeedsLink: React.FC = () => { + const { signedIn, permissions } = useIdentity(); + + const canViewLocalFeed = canViewFeed( + signedIn, + permissions, + localLiveFeedAccess, + ); + const canViewRemoteFeed = canViewFeed( + signedIn, + permissions, + remoteLiveFeedAccess, + ); + + if (!canViewLocalFeed && !canViewRemoteFeed) { + return null; + } + + const canViewOnlyOneFeed = canViewLocalFeed !== canViewRemoteFeed; + + return ( + + {canViewOnlyOneFeed ? ( + + ) : ( + + )} + + ); +}; + const TransientSingleColumnCallout: React.FC = () => ( { description={

{serverItem?.description ?? ''}

} isLoading={isLoading} > - - @@ -129,7 +135,7 @@ export const DisabledAccountBanner: React.FC = () => {
} > -