From 28f57aafb8f7ef5c4d232dbd82899d107c4351f3 Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Fri, 7 Aug 2026 15:24:41 +0200 Subject: [PATCH] fix(server): keep resources nav active and show tab loading Use $activeMenu for Resources so Livewire updates do not clear the sidebar highlight, and disable managed/unmanaged tabs with spinners while containers load. --- resources/views/components/server/sidebar.blade.php | 2 +- resources/views/livewire/server/resources.blade.php | 10 ++++++---- tests/Feature/ServerResourcesTableMobileLayoutTest.php | 10 ++++++++++ tests/Feature/SidebarNavigationMarkupTest.php | 8 ++++++++ 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/resources/views/components/server/sidebar.blade.php b/resources/views/components/server/sidebar.blade.php index 5450e4310..1d6f07310 100644 --- a/resources/views/components/server/sidebar.blade.php +++ b/resources/views/components/server/sidebar.blade.php @@ -76,7 +76,7 @@ [ 'label' => 'Resources', 'route' => 'server.resources', - 'active' => request()->routeIs('server.resources'), + 'active' => $activeMenu === 'resources', 'icon' => 'projects', 'group' => 'Platform', ], diff --git a/resources/views/livewire/server/resources.blade.php b/resources/views/livewire/server/resources.blade.php index 6d9031c18..1ab1744b5 100644 --- a/resources/views/livewire/server/resources.blade.php +++ b/resources/views/livewire/server/resources.blade.php @@ -13,12 +13,14 @@ flush>
- -
diff --git a/tests/Feature/ServerResourcesTableMobileLayoutTest.php b/tests/Feature/ServerResourcesTableMobileLayoutTest.php index 41834ae4b..7d35c7f10 100644 --- a/tests/Feature/ServerResourcesTableMobileLayoutTest.php +++ b/tests/Feature/ServerResourcesTableMobileLayoutTest.php @@ -55,3 +55,13 @@ test('unmanaged container names use the same typeface as managed resource names' ->toContain('min-w-0 truncate text-[12px] font-medium text-neutral-950 dark:text-fg') ->not->toContain('truncate font-mono text-[12px] text-neutral-950 dark:text-fg'); }); + +test('server resource tabs show a loading state while switching', function () { + $view = file_get_contents(resource_path('views/livewire/server/resources.blade.php')); + + expect(substr_count($view, 'wire:loading.attr="disabled" wire:target="loadManagedContainers,loadUnmanagedContainers"')) + ->toBe(2) + ->and($view) + ->toContain('') + ->toContain(''); +}); diff --git a/tests/Feature/SidebarNavigationMarkupTest.php b/tests/Feature/SidebarNavigationMarkupTest.php index ffd5cfdf1..2e07f06f2 100644 --- a/tests/Feature/SidebarNavigationMarkupTest.php +++ b/tests/Feature/SidebarNavigationMarkupTest.php @@ -15,6 +15,14 @@ it('keeps server submenu state independent from the Livewire update route', func ->and($proxyLogs)->toContain('activeSubMenu="logs"'); }); +it('keeps the server resources menu active during Livewire updates', function () { + $sidebar = file_get_contents(resource_path('views/components/server/sidebar.blade.php')); + + expect($sidebar) + ->toContain("'label' => 'Resources',\n 'route' => 'server.resources',\n 'active' => \$activeMenu === 'resources'") + ->not->toContain("'active' => request()->routeIs('server.resources')"); +}); + it('initializes persisted sidebar state before enabling layout transitions', function () { $layout = file_get_contents(resource_path('views/layouts/app.blade.php'));