From d28a4428b57bed7e23bad7baa7231601c169e8b5 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Mon, 23 Jun 2025 11:59:47 +0200 Subject: [PATCH] refactor: Use new main menu as "Getting started" column in Advanced Web UI (#35117) --- .../mastodon/features/compose/index.tsx | 59 ++-- .../features/getting_started/index.jsx | 179 ---------- .../features/getting_started/index.tsx | 32 ++ .../features/navigation_panel/index.tsx | 310 +++++++++--------- .../features/ui/components/columns_area.jsx | 4 +- .../features/ui/components/navigation_bar.tsx | 2 +- app/javascript/mastodon/features/ui/index.jsx | 11 +- app/javascript/mastodon/locales/en.json | 11 +- 8 files changed, 230 insertions(+), 378 deletions(-) delete mode 100644 app/javascript/mastodon/features/getting_started/index.jsx create mode 100644 app/javascript/mastodon/features/getting_started/index.tsx 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 (