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) {