From e5658f7d06989d4fcc6f1cb88006115540459833 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paulo=20S=C3=A9rgio=20Dantas?= Date: Wed, 1 Jul 2026 02:08:05 -0300 Subject: [PATCH] refactor(sidebar): move Settings from the sidebar footer into the user menu Settings lived on its own fixed row at the bottom of the sidebar. It's a secondary destination, so it now sits inside the user dropdown (above Profile), where it groups naturally with Profile / Language / Log out and frees a fixed row of sidebar space. - UserMenuContent: Settings item added above Profile. - AppSidebar: footer Settings block removed, along with the now-unused IconSettings, settingsHub and useActiveUrl/urlIsActive. --- resources/js/components/AppSidebar.vue | 20 +------------------- resources/js/components/UserMenuContent.vue | 8 ++++++++ 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/resources/js/components/AppSidebar.vue b/resources/js/components/AppSidebar.vue index d7b66dd7..09979a53 100644 --- a/resources/js/components/AppSidebar.vue +++ b/resources/js/components/AppSidebar.vue @@ -17,7 +17,6 @@ import { IconPhoto, IconPencil, IconPlus, - IconSettings, IconTag, } from '@tabler/icons-vue'; import { trans } from 'laravel-vue-i18n'; @@ -46,9 +45,8 @@ import { SidebarMenuButton, SidebarMenuItem, } from '@/components/ui/sidebar'; -import { useActiveUrl } from '@/composables/useActiveUrl'; import { useWorkspaceRole } from '@/composables/useWorkspaceRole'; -import { accounts, analytics, calendar, settings as settingsHub } from '@/routes/app'; +import { accounts, analytics, calendar } from '@/routes/app'; import { index as assets } from '@/routes/app/assets'; import { index as automations } from '@/routes/app/automations'; import { portal } from '@/routes/app/billing'; @@ -172,8 +170,6 @@ const switchWorkspace = (workspaceId: string) => { }); }; -const { urlIsActive } = useActiveUrl(); - const handleCreateWorkspace = () => { router.visit(createWorkspaceRoute.url()); }; @@ -266,20 +262,6 @@ const handleCreateWorkspace = () => { {{ $t('billing.past_due_notice.cta') }} - - - - - - {{ $t('sidebar.settings') }} - - - - diff --git a/resources/js/components/UserMenuContent.vue b/resources/js/components/UserMenuContent.vue index c9e1a989..a0cdf924 100644 --- a/resources/js/components/UserMenuContent.vue +++ b/resources/js/components/UserMenuContent.vue @@ -3,6 +3,7 @@ import { Link, router, usePage } from '@inertiajs/vue3'; import { IconLanguage, IconLogout, + IconSettings, IconUser, } from '@tabler/icons-vue'; import { loadLanguageAsync } from 'laravel-vue-i18n'; @@ -23,6 +24,7 @@ import UserInfo from '@/components/UserInfo.vue'; import dayjs from '@/dayjs'; import posthog from '@/posthog'; import { logout } from '@/routes'; +import { settings as settingsHub } from '@/routes/app'; import { edit } from '@/routes/app/profile'; import type { User } from '@/types'; @@ -75,6 +77,12 @@ const handleLogout = () => { + + + + {{ $t('sidebar.settings') }} + +