From 7d47109e95d85e40603682f0199f8f61f6140a7f Mon Sep 17 00:00:00 2001 From: Jorge Lapa <2780099+heyjorgedev@users.noreply.github.com> Date: Mon, 22 Sep 2025 08:27:27 +0100 Subject: [PATCH 1/2] fix header menu selection indicator not showing --- resources/js/components/app-header.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/js/components/app-header.tsx b/resources/js/components/app-header.tsx index 6f3ab8fb..a164139a 100644 --- a/resources/js/components/app-header.tsx +++ b/resources/js/components/app-header.tsx @@ -182,7 +182,10 @@ export function AppHeader({ breadcrumbs = [] }: AppHeaderProps) { )} {item.title} - {page.url === item.href && ( + {page.url === + (typeof item.href === 'string' + ? item.href + : item.href.url) && (
)} From dd94db290e0235b07ae60fc8f06c5ed86a6aac2f Mon Sep 17 00:00:00 2001 From: Joe Tannenbaum Date: Mon, 20 Oct 2025 13:56:29 -0400 Subject: [PATCH 2/2] isSameUrl and resolveUrl helpers --- resources/js/components/app-header.tsx | 31 ++++++------------------ resources/js/components/nav-footer.tsx | 7 ++---- resources/js/components/nav-main.tsx | 5 ++-- resources/js/layouts/settings/layout.tsx | 13 +++++----- resources/js/lib/utils.ts | 12 +++++++++ 5 files changed, 30 insertions(+), 38 deletions(-) diff --git a/resources/js/components/app-header.tsx b/resources/js/components/app-header.tsx index a164139a..1f637192 100644 --- a/resources/js/components/app-header.tsx +++ b/resources/js/components/app-header.tsx @@ -28,7 +28,7 @@ import { } from '@/components/ui/tooltip'; import { UserMenuContent } from '@/components/user-menu-content'; import { useInitials } from '@/hooks/use-initials'; -import { cn } from '@/lib/utils'; +import { cn, isSameUrl, resolveUrl } from '@/lib/utils'; import { dashboard } from '@/routes'; import { type BreadcrumbItem, type NavItem, type SharedData } from '@/types'; import { Link, usePage } from '@inertiajs/react'; @@ -118,12 +118,7 @@ export function AppHeader({ breadcrumbs = [] }: AppHeaderProps) { {rightNavItems.map((item) => ( @@ -182,10 +175,7 @@ export function AppHeader({ breadcrumbs = [] }: AppHeaderProps) { )} {item.title} - {page.url === - (typeof item.href === 'string' - ? item.href - : item.href.url) && ( + {isSameUrl(page.url, item.href) && (
)} @@ -212,12 +202,7 @@ export function AppHeader({ breadcrumbs = [] }: AppHeaderProps) {
diff --git a/resources/js/components/nav-main.tsx b/resources/js/components/nav-main.tsx index a1c574ca..61a13423 100644 --- a/resources/js/components/nav-main.tsx +++ b/resources/js/components/nav-main.tsx @@ -5,6 +5,7 @@ import { SidebarMenuButton, SidebarMenuItem, } from '@/components/ui/sidebar'; +import { resolveUrl } from '@/lib/utils'; import { type NavItem } from '@/types'; import { Link, usePage } from '@inertiajs/react'; @@ -19,9 +20,7 @@ export function NavMain({ items = [] }: { items: NavItem[] }) { diff --git a/resources/js/layouts/settings/layout.tsx b/resources/js/layouts/settings/layout.tsx index c128d82c..b51813b9 100644 --- a/resources/js/layouts/settings/layout.tsx +++ b/resources/js/layouts/settings/layout.tsx @@ -1,7 +1,7 @@ import Heading from '@/components/heading'; import { Button } from '@/components/ui/button'; import { Separator } from '@/components/ui/separator'; -import { cn } from '@/lib/utils'; +import { cn, isSameUrl, resolveUrl } from '@/lib/utils'; import { edit as editAppearance } from '@/routes/appearance'; import { edit as editPassword } from '@/routes/password'; import { edit } from '@/routes/profile'; @@ -53,16 +53,15 @@ export default function SettingsLayout({ children }: PropsWithChildren) {