feat: enable SPA mode and add Alpine.js initialization hook for navigation in AdminPanelProvider

This commit is contained in:
Yoga Pangestu 2026-04-06 16:01:27 +07:00
parent 7c252bd41b
commit 59838782f9

View File

@ -16,6 +16,7 @@
use Filament\Panel;
use Filament\PanelProvider;
use Filament\Support\Colors\Color;
use Filament\View\PanelsRenderHook;
use Hammadzafar05\MobileBottomNav\MobileBottomNav;
use Hammadzafar05\MobileBottomNav\MobileBottomNavItem;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
@ -23,6 +24,7 @@
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
use Illuminate\Routing\Middleware\SubstituteBindings;
use Illuminate\Session\Middleware\StartSession;
use Illuminate\Support\HtmlString;
use Illuminate\View\Middleware\ShareErrorsFromSession;
use Saade\Facehash\Enums\Variant;
use Saade\FilamentFacehash\FacehashPlugin;
@ -138,6 +140,17 @@ public function panel(Panel $panel): Panel
->favicon(fn () => asset('images/logo.png'))
->brandLogoHeight(function () {
return request()->is('admin/login') ? '120px' : '40px';
});
})
->spa()
->renderHook(
PanelsRenderHook::BODY_END,
fn (): HtmlString => new HtmlString(<<<'HTML'
<script>
document.addEventListener('livewire:navigated', () => {
setTimeout(() => Alpine.initTree(document.body), 0)
})
</script>
HTML)
);
}
}