From d2a7d7708ca3a4f271375c49c6d80ccd3e2d47f7 Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 4 Dec 2024 09:41:47 -0500 Subject: [PATCH] Add Display Width setting (#759) Allow users to pick how "wide" the panel is. --- app/Filament/Pages/Settings.php | 7 +++++++ app/Providers/Filament/AdminPanelProvider.php | 3 +-- app/Providers/Filament/AppPanelProvider.php | 4 ++-- config/panel.php | 1 + 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/Filament/Pages/Settings.php b/app/Filament/Pages/Settings.php index a5630bc7f..8454aba74 100644 --- a/app/Filament/Pages/Settings.php +++ b/app/Filament/Pages/Settings.php @@ -10,6 +10,7 @@ use Filament\Actions\Action; use Filament\Forms\Components\Actions\Action as FormAction; use Filament\Forms\Components\Placeholder; use Filament\Forms\Components\Section; +use Filament\Forms\Components\Select; use Filament\Forms\Components\Tabs; use Filament\Forms\Components\Tabs\Tab; use Filament\Forms\Components\TagsInput; @@ -25,6 +26,7 @@ use Filament\Notifications\Notification; use Filament\Pages\Concerns\HasUnsavedDataChangesAlert; use Filament\Pages\Concerns\InteractsWithHeaderActions; use Filament\Pages\Page; +use Filament\Support\Enums\MaxWidth; use GuzzleHttp\Client; use GuzzleHttp\Exception\GuzzleException; use Illuminate\Support\Facades\Artisan; @@ -185,6 +187,11 @@ class Settings extends Page implements HasForms $set('TRUSTED_PROXIES', $ips->values()->all()); }), ]), + Select::make('FILAMENT_WIDTH') + ->label('Display Width') + ->native(false) + ->options(MaxWidth::class) + ->default(env('FILAMENT_WIDTH', config('panel.filament.display-width'))), ]; } diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php index 0b481e1f5..9b15afdf8 100644 --- a/app/Providers/Filament/AdminPanelProvider.php +++ b/app/Providers/Filament/AdminPanelProvider.php @@ -11,7 +11,6 @@ use Filament\Http\Middleware\DispatchServingFilamentEvent; use Filament\Navigation\MenuItem; use Filament\Panel; use Filament\PanelProvider; -use Filament\Support\Enums\MaxWidth; use Filament\Support\Facades\FilamentAsset; use Filament\Widgets; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; @@ -53,7 +52,7 @@ class AdminPanelProvider extends PanelProvider ->icon('tabler-arrow-back') ->sort(24), ]) - ->maxContentWidth(MaxWidth::ScreenTwoExtraLarge) + ->maxContentWidth(config('panel.filament.display-width', 'screen-2xl')) ->spa() ->discoverResources(in: app_path('Filament/Resources'), for: 'App\\Filament\\Resources') ->discoverPages(in: app_path('Filament/Pages'), for: 'App\\Filament\\Pages') diff --git a/app/Providers/Filament/AppPanelProvider.php b/app/Providers/Filament/AppPanelProvider.php index b7f2cd1a3..d5bed4f80 100644 --- a/app/Providers/Filament/AppPanelProvider.php +++ b/app/Providers/Filament/AppPanelProvider.php @@ -11,7 +11,6 @@ use Filament\Http\Middleware\DispatchServingFilamentEvent; use Filament\Navigation\MenuItem; use Filament\Panel; use Filament\PanelProvider; -use Filament\Support\Enums\MaxWidth; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\EncryptCookies; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; @@ -33,8 +32,9 @@ class AppPanelProvider extends PanelProvider ->brandLogo(config('app.logo')) ->brandLogoHeight('2rem') ->favicon(config('app.favicon', '/pelican.ico')) + ->topNavigation(config('panel.filament.top-navigation', true)) + ->maxContentWidth(config('panel.filament.display-width', 'screen-2xl')) ->navigation(false) - ->maxContentWidth(MaxWidth::ScreenTwoExtraLarge) ->profile(EditProfile::class, false) ->login(Login::class) ->userMenuItems([ diff --git a/config/panel.php b/config/panel.php index 83c1859e2..a42053a5d 100644 --- a/config/panel.php +++ b/config/panel.php @@ -162,6 +162,7 @@ return [ 'filament' => [ 'top-navigation' => env('FILAMENT_TOP_NAVIGATION', false), + 'display-width' => env('FILAMENT_WIDTH', 'screen-2xl'), ], 'use_binary_prefix' => env('PANEL_USE_BINARY_PREFIX', true),