diff --git a/packages/panels/resources/views/components/layout/index.blade.php b/packages/panels/resources/views/components/layout/index.blade.php
index 7887dab856..b639994a49 100644
--- a/packages/panels/resources/views/components/layout/index.blade.php
+++ b/packages/panels/resources/views/components/layout/index.blade.php
@@ -47,7 +47,7 @@
class="fi-sidebar-close-overlay"
>
- @livewire(\Filament\Livewire\Sidebar::class)
+ @livewire(filament()->getSidebarLivewireComponent())
@endif
getCurrentOrDefaultPanel()->getProfilePage();
}
+ public function getSidebarLivewireComponent(): string
+ {
+ return $this->getCurrentOrDefaultPanel()->getSidebarLivewireComponent();
+ }
+
public function getTenantProfilePage(): ?string
{
return $this->getCurrentOrDefaultPanel()->getTenantProfilePage();
diff --git a/packages/panels/src/Panel/Concerns/HasComponents.php b/packages/panels/src/Panel/Concerns/HasComponents.php
index cff4409358..1cb2282ee6 100644
--- a/packages/panels/src/Panel/Concerns/HasComponents.php
+++ b/packages/panels/src/Panel/Concerns/HasComponents.php
@@ -7,7 +7,6 @@ use Filament\Auth\Pages\EditProfile;
use Filament\Clusters\Cluster;
use Filament\Livewire\GlobalSearch;
use Filament\Livewire\Notifications;
-use Filament\Livewire\Sidebar;
use Filament\Livewire\SimpleUserMenu;
use Filament\Livewire\Topbar;
use Filament\Pages\Page;
@@ -491,7 +490,7 @@ trait HasComponents
$this->queueLivewireComponentForRegistration(EditProfile::class);
$this->queueLivewireComponentForRegistration(GlobalSearch::class);
$this->queueLivewireComponentForRegistration(Notifications::class);
- $this->queueLivewireComponentForRegistration(Sidebar::class);
+ $this->queueLivewireComponentForRegistration($this->getSidebarLivewireComponent());
$this->queueLivewireComponentForRegistration(SimpleUserMenu::class);
$this->queueLivewireComponentForRegistration(Topbar::class);
diff --git a/packages/panels/src/Panel/Concerns/HasSidebar.php b/packages/panels/src/Panel/Concerns/HasSidebar.php
index 87ded63957..4e1622dfb9 100644
--- a/packages/panels/src/Panel/Concerns/HasSidebar.php
+++ b/packages/panels/src/Panel/Concerns/HasSidebar.php
@@ -3,6 +3,8 @@
namespace Filament\Panel\Concerns;
use Closure;
+use Filament\Livewire\Sidebar;
+use Livewire\Component;
trait HasSidebar
{
@@ -16,6 +18,8 @@ trait HasSidebar
protected bool | Closure $hasCollapsibleNavigationGroups = true;
+ protected string | Closure | null $sidebarLivewireComponent = null;
+
public function sidebarCollapsibleOnDesktop(bool | Closure $condition = true): static
{
$this->isSidebarCollapsibleOnDesktop = $condition;
@@ -37,6 +41,16 @@ trait HasSidebar
return $this;
}
+ /**
+ * @param class-string | Closure | null $component
+ */
+ public function sidebarLivewireComponent(string | Closure | null $component): static
+ {
+ $this->sidebarLivewireComponent = $component;
+
+ return $this;
+ }
+
public function sidebarWidth(string $width): static
{
$this->sidebarWidth = $width;
@@ -75,4 +89,12 @@ trait HasSidebar
{
return (bool) $this->evaluate($this->hasCollapsibleNavigationGroups);
}
+
+ /**
+ * @return class-string
+ */
+ public function getSidebarLivewireComponent(): string
+ {
+ return $this->evaluate($this->sidebarLivewireComponent) ?? Sidebar::class;
+ }
}