From b60e56852b1b9def8f284770894edf78e304aad9 Mon Sep 17 00:00:00 2001 From: ankitcodes4u Date: Sat, 28 Jun 2025 04:31:08 +0545 Subject: [PATCH] feat: both panel have separate theme --- src/Providers/FrontendPanelProvider.php | 31 +++++++++++++++++++++---- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/Providers/FrontendPanelProvider.php b/src/Providers/FrontendPanelProvider.php index 5c6d649..46e21bd 100644 --- a/src/Providers/FrontendPanelProvider.php +++ b/src/Providers/FrontendPanelProvider.php @@ -24,13 +24,16 @@ use Illuminate\Support\Facades\Blade; use Illuminate\View\Middleware\ShareErrorsFromSession; use pxlrbt\FilamentEnvironmentIndicator\EnvironmentIndicatorPlugin; +use Filament\View\PanelsRenderHook; class FrontendPanelProvider extends PanelProvider { + private const PANEL_ID = 'frontend'; + public function panel(Panel $panel): Panel { return $panel - ->id('frontend') + ->id(self::PANEL_ID) ->path('') ->login() ->passwordReset() @@ -40,7 +43,7 @@ public function panel(Panel $panel): Panel 'gray' => Color::Slate, ]) ->topNavigation() - ->brandName(fn () => Registry::getSite()->name) + ->brandName(fn() => Registry::getSite()->name) ->discoverResources(in: app_path('Filament/Frontend/Resources'), for: 'App\\Filament\\Frontend\\Resources') ->discoverPages(in: app_path('Filament/Frontend/Pages'), for: 'App\\Filament\\Frontend\\Pages') ->pages([ @@ -67,7 +70,7 @@ public function panel(Panel $panel): Panel ]) ->globalSearch(GlobalSearchProvider::class) ->globalSearchKeyBindings(['ctrl+k', 'command+k']) - ->globalSearchFieldSuffix(fn (): ?string => match (Platform::detect()) { + ->globalSearchFieldSuffix(fn(): ?string => match (Platform::detect()) { Platform::Windows, Platform::Linux => 'CTRL+K', Platform::Mac => '⌘K', default => null, @@ -77,13 +80,31 @@ public function panel(Panel $panel): Panel ->tenantMenu(false) ->plugins([ EnvironmentIndicatorPlugin::make(), - ]); + ]) + ->renderHook( + PanelsRenderHook::TOPBAR_END, + fn(): string => self::getThemeIsolationScript(self::PANEL_ID) + ); } public function register(): void { parent::register(); - FilamentView::registerRenderHook('panels::body.end', fn (): string => Blade::render("@vite('resources/js/app.js')")); + FilamentView::registerRenderHook('panels::body.end', fn(): string => Blade::render("@vite('resources/js/app.js')")); + } + + private static function getThemeIsolationScript(string $panelId): string + { + return ""; } }