diff --git a/resources/views/components/desktop/desktop-navigation.blade.php b/resources/views/components/desktop/desktop-navigation.blade.php index 86050f1..0ee593d 100644 --- a/resources/views/components/desktop/desktop-navigation.blade.php +++ b/resources/views/components/desktop/desktop-navigation.blade.php @@ -14,7 +14,6 @@ @foreach($item['links'] as $link) @php - // Check if params exist, otherwise fallback to route $url = isset($link['params']) ? route($link['route'], $link['params']) : route($link['route']); @@ -40,9 +39,15 @@ $url = isset($link['params']) ? route($link['route'], $link['params']) : route($link['route']); + + $currentPath = '/'.request()->path(); + $linkPath = parse_url($url, PHP_URL_PATH) ?? ''; @endphp - + + {{ __($link['name']) }} @endforeach diff --git a/resources/views/components/dropdown-link.blade.php b/resources/views/components/dropdown-link.blade.php index 9e51c0c..f8f9019 100644 --- a/resources/views/components/dropdown-link.blade.php +++ b/resources/views/components/dropdown-link.blade.php @@ -1,4 +1,4 @@ -@props(['active']) +@props(['active' => false]) @php $classes = ($active ?? false) diff --git a/resources/views/components/mobile/mobile-dropdown.blade.php b/resources/views/components/mobile/mobile-dropdown.blade.php index e9563f4..41bd2ba 100644 --- a/resources/views/components/mobile/mobile-dropdown.blade.php +++ b/resources/views/components/mobile/mobile-dropdown.blade.php @@ -1,36 +1,70 @@ -@props(['active', 'name', 'links', 'bgClass', 'route', 'params' => [], 'active' => null]) +@props([ + 'active' => false, + 'name', + 'links', + 'bgClass', + 'route', + 'params' => [] +]) @php - $classes = ($active) - ? "block w-full ps-3 pe-4 py-2 text-start text-base font-medium text-gray-900 hover:text-gray-700 hover:border-prime-400 focus:outline-none focus:text-gray-800 focus:bg-gray-50 hover:bg-slate-200 focus:border-prime-300 transition duration-150 ease-in-out border-l-4 bg-slate-200 border-prime-400" - : "block w-full ps-3 pe-4 py-2 text-start text-base font-medium text-gray-900 hover:text-gray-700 hover:border-prime-400 focus:outline-none focus:text-gray-800 focus:bg-gray-50 hover:bg-slate-200 focus:border-gray-400 transition duration-150 ease-in-out border-l-4 $bgClass"; + $dropdownActive = false; + + foreach ($links as $link) { + $url = isset($link['params']) + ? route($link['route'], $link['params']) + : route($link['route']); + + $parsedPath = trim(parse_url($url, PHP_URL_PATH) ?? '', '/'); + + if (request()->is($parsedPath) || request()->is($parsedPath . '/*')) { + $dropdownActive = true; + break; + } + } + + $active = $active || $dropdownActive; + + $classes = $active + ? "block w-full ps-3 pe-4 py-2 text-start text-base font-medium text-gray-900 + hover:text-gray-700 hover:border-prime-400 focus:outline-none focus:text-gray-800 + focus:bg-gray-50 hover:bg-slate-200 focus:border-prime-300 transition duration-150 + ease-in-out border-l-4 bg-slate-200 border-prime-400" + : "block w-full ps-3 pe-4 py-2 text-start text-base font-medium text-gray-900 + hover:text-gray-700 hover:border-prime-400 focus:outline-none focus:text-gray-800 + focus:bg-gray-50 hover:bg-slate-200 focus:border-gray-400 transition duration-150 + ease-in-out border-l-4 $bgClass"; @endphp
- +
@foreach($links as $link) @php - // If 'params' exist, pass them to route() $url = isset($link['params']) ? route($link['route'], $link['params']) : route($link['route']); + + $parsedPath = trim(parse_url($url, PHP_URL_PATH) ?? '', '/'); + $childActive = request()->is($parsedPath) || request()->is($parsedPath . '/*'); @endphp - {{ $link['name'] }} + {{ __($link['name']) }} @endforeach -
diff --git a/resources/views/components/mobile/mobile-navigation.blade.php b/resources/views/components/mobile/mobile-navigation.blade.php index acfce32..49b46ea 100644 --- a/resources/views/components/mobile/mobile-navigation.blade.php +++ b/resources/views/components/mobile/mobile-navigation.blade.php @@ -2,30 +2,73 @@