diff --git a/app/javascript/mastodon/features/compose/index.tsx b/app/javascript/mastodon/features/compose/index.tsx
index 54776c98f..892cbb976 100644
--- a/app/javascript/mastodon/features/compose/index.tsx
+++ b/app/javascript/mastodon/features/compose/index.tsx
@@ -15,39 +15,34 @@ import LogoutIcon from '@/material-icons/400-24px/logout.svg?react';
import MenuIcon from '@/material-icons/400-24px/menu.svg?react';
import NotificationsIcon from '@/material-icons/400-24px/notifications-fill.svg?react';
import PublicIcon from '@/material-icons/400-24px/public.svg?react';
-import SettingsIcon from '@/material-icons/400-24px/settings-fill.svg?react';
+import SettingsIcon from '@/material-icons/400-24px/settings.svg?react';
import { mountCompose, unmountCompose } from 'mastodon/actions/compose';
import { openModal } from 'mastodon/actions/modal';
import { Column } from 'mastodon/components/column';
import { ColumnHeader } from 'mastodon/components/column_header';
import { Icon } from 'mastodon/components/icon';
-import { mascot } from 'mastodon/initial_state';
+import { mascot, reduceMotion } from 'mastodon/initial_state';
import { useAppDispatch, useAppSelector } from 'mastodon/store';
+import { messages as navbarMessages } from '../ui/components/navigation_bar';
+
import { Search } from './components/search';
import ComposeFormContainer from './containers/compose_form_container';
const messages = defineMessages({
- start: { id: 'getting_started.heading', defaultMessage: 'Getting started' },
- home_timeline: { id: 'tabs_bar.home', defaultMessage: 'Home' },
- notifications: {
- id: 'tabs_bar.notifications',
- defaultMessage: 'Notifications',
+ live_feed_public: {
+ id: 'navigation_bar.live_feed_public',
+ defaultMessage: 'Live feed (public)',
},
- public: {
- id: 'navigation_bar.public_timeline',
- defaultMessage: 'Federated timeline',
- },
- community: {
- id: 'navigation_bar.community_timeline',
- defaultMessage: 'Local timeline',
+ live_feed_local: {
+ id: 'navigation_bar.live_feed_local',
+ defaultMessage: 'Live feed (local)',
},
preferences: {
id: 'navigation_bar.preferences',
defaultMessage: 'Preferences',
},
logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },
- compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new post' },
});
type ColumnMap = ImmutableMap<'id' | 'uuid' | 'params', string>;
@@ -82,19 +77,27 @@ const Compose: React.FC<{ multiColumn: boolean }> = ({ multiColumn }) => {
[dispatch],
);
+ const scrollNavbarIntoView = useCallback(() => {
+ const navbar = document.querySelector('.navigation-panel');
+ navbar?.scrollIntoView({
+ behavior: reduceMotion ? 'auto' : 'smooth',
+ });
+ }, []);
+
if (multiColumn) {
return (
);
diff --git a/app/javascript/mastodon/features/ui/components/columns_area.jsx b/app/javascript/mastodon/features/ui/components/columns_area.jsx
index 1b882a1c5..77b95d526 100644
--- a/app/javascript/mastodon/features/ui/components/columns_area.jsx
+++ b/app/javascript/mastodon/features/ui/components/columns_area.jsx
@@ -25,7 +25,7 @@ import BundleColumnError from './bundle_column_error';
import { ColumnLoading } from './column_loading';
import { ComposePanel, RedirectToMobileComposeIfNeeded } from './compose_panel';
import DrawerLoading from './drawer_loading';
-import { NavigationPanel } from 'mastodon/features/navigation_panel';
+import { CollapsibleNavigationPanel } from 'mastodon/features/navigation_panel';
const componentMap = {
'COMPOSE': Compose,
@@ -133,7 +133,7 @@ export default class ColumnsArea extends ImmutablePureComponent {
{children}
-
+
);
}
diff --git a/app/javascript/mastodon/features/ui/components/navigation_bar.tsx b/app/javascript/mastodon/features/ui/components/navigation_bar.tsx
index dbb70f9ec..467e20a57 100644
--- a/app/javascript/mastodon/features/ui/components/navigation_bar.tsx
+++ b/app/javascript/mastodon/features/ui/components/navigation_bar.tsx
@@ -22,7 +22,7 @@ import { registrationsOpen, sso_redirect } from 'mastodon/initial_state';
import { selectUnreadNotificationGroupsCount } from 'mastodon/selectors/notifications';
import { useAppDispatch, useAppSelector } from 'mastodon/store';
-const messages = defineMessages({
+export const messages = defineMessages({
home: { id: 'tabs_bar.home', defaultMessage: 'Home' },
search: { id: 'tabs_bar.search', defaultMessage: 'Search' },
publish: { id: 'tabs_bar.publish', defaultMessage: 'New Post' },
diff --git a/app/javascript/mastodon/features/ui/index.jsx b/app/javascript/mastodon/features/ui/index.jsx
index 4297d750c..c9834eb0a 100644
--- a/app/javascript/mastodon/features/ui/index.jsx
+++ b/app/javascript/mastodon/features/ui/index.jsx
@@ -142,13 +142,8 @@ class SwitchingColumnsArea extends PureComponent {
};
UNSAFE_componentWillMount () {
- if (this.props.singleColumn) {
- document.body.classList.toggle('layout-single-column', true);
- document.body.classList.toggle('layout-multiple-columns', false);
- } else {
- document.body.classList.toggle('layout-single-column', false);
- document.body.classList.toggle('layout-multiple-columns', true);
- }
+ document.body.classList.toggle('layout-single-column', this.props.singleColumn);
+ document.body.classList.toggle('layout-multiple-columns', !this.props.singleColumn);
}
componentDidUpdate (prevProps) {
@@ -200,8 +195,8 @@ class SwitchingColumnsArea extends PureComponent {
{singleColumn ? : null}
{singleColumn && pathName.startsWith('/deck/') ? : null}
{/* Redirect old bookmarks (without /deck) with home-like routes to the advanced interface */}
- {!singleColumn && pathName === '/getting-started' ? : null}
{!singleColumn && pathName === '/home' ? : null}
+ {pathName === '/getting-started' ? : null}
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index ad5d66c16..0f53dbe57 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -184,7 +184,6 @@
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_search.cancel": "Cancel",
- "column_subheading.settings": "Settings",
"community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media Only",
"community.column_settings.remote_only": "Remote only",
@@ -555,12 +554,8 @@
"navigation_bar.automated_deletion": "Automated post deletion",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks",
- "navigation_bar.community_timeline": "Local timeline",
- "navigation_bar.compose": "Compose new post",
"navigation_bar.direct": "Private mentions",
- "navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Blocked domains",
- "navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favorites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",
@@ -568,19 +563,17 @@
"navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.import_export": "Import and export",
"navigation_bar.lists": "Lists",
+ "navigation_bar.live_feed_local": "Live feed (local)",
+ "navigation_bar.live_feed_public": "Live feed (public)",
"navigation_bar.logout": "Logout",
"navigation_bar.moderation": "Moderation",
"navigation_bar.more": "More",
"navigation_bar.mutes": "Muted users",
"navigation_bar.opened_in_classic_interface": "Posts, accounts, and other specific pages are opened by default in the classic web interface.",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Pinned posts",
"navigation_bar.preferences": "Preferences",
"navigation_bar.privacy_and_reach": "Privacy and reach",
- "navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.search": "Search",
"navigation_bar.search_trends": "Search / Trending",
- "navigation_bar.security": "Security",
"navigation_panel.collapse_followed_tags": "Collapse followed hashtags menu",
"navigation_panel.collapse_lists": "Collapse list menu",
"navigation_panel.expand_followed_tags": "Expand followed hashtags menu",