From 5d53ceffbcc0cdf397100b362c648582be78ec88 Mon Sep 17 00:00:00 2001 From: Lukas Frey Date: Thu, 2 May 2024 16:01:47 +0200 Subject: [PATCH] refactor: moved platform detection to helper function Signed-off-by: Lukas Frey --- .../docs/03-resources/08-global-search.md | 5 +++-- .../src/Panel/Concerns/HasGlobalSearch.php | 13 ++----------- .../{panels => support}/src/Enums/Platform.php | 2 +- packages/support/src/helpers.php | 18 ++++++++++++++++++ 4 files changed, 24 insertions(+), 14 deletions(-) rename packages/{panels => support}/src/Enums/Platform.php (80%) diff --git a/packages/panels/docs/03-resources/08-global-search.md b/packages/panels/docs/03-resources/08-global-search.md index 13baac37b1..ae5e2f2fd8 100644 --- a/packages/panels/docs/03-resources/08-global-search.md +++ b/packages/panels/docs/03-resources/08-global-search.md @@ -193,13 +193,14 @@ For example, to provide a custom suffix for each platform on your own, you could ```php use Filament\Panel; -use Filament\Enums\Platform; +use Filament\Support\Enums\Platform; +use function Filament\Support\detect_platform; public function panel(Panel $panel): Panel { return $panel // ... - ->globalSearchSuffix(fn(Platform $platform) => match($platform) { + ->globalSearchFieldSuffix(fn() => match(detect_platform()) { Platform::Windows, Platform::Linux => 'CTRL+K', Platform::Mac => '⌘K' default => null, diff --git a/packages/panels/src/Panel/Concerns/HasGlobalSearch.php b/packages/panels/src/Panel/Concerns/HasGlobalSearch.php index 014f0fa49c..9f59aff753 100644 --- a/packages/panels/src/Panel/Concerns/HasGlobalSearch.php +++ b/packages/panels/src/Panel/Concerns/HasGlobalSearch.php @@ -4,9 +4,9 @@ namespace Filament\Panel\Concerns; use Closure; use Exception; -use Filament\Enums\Platform; use Filament\GlobalSearch\Contracts\GlobalSearchProvider; use Filament\GlobalSearch\DefaultGlobalSearchProvider; +use Filament\Support\Enums\Platform; use Illuminate\Support\Arr; use Illuminate\Support\Stringable; @@ -105,16 +105,7 @@ trait HasGlobalSearch public function getGlobalSearchFieldSuffix(): ?string { - $userAgent = request()->userAgent(); - - return $this->evaluate($this->globalSearchFieldSuffix, [ - 'platform' => match (true) { - str_contains($userAgent, 'Windows') => Platform::Windows, - str_contains($userAgent, 'Mac') => Platform::Mac, - str_contains($userAgent, 'Linux') => Platform::Linux, - default => Platform::Other, - }, - ]); + return $this->evaluate($this->globalSearchFieldSuffix); } public function getGlobalSearchProvider(): ?GlobalSearchProvider diff --git a/packages/panels/src/Enums/Platform.php b/packages/support/src/Enums/Platform.php similarity index 80% rename from packages/panels/src/Enums/Platform.php rename to packages/support/src/Enums/Platform.php index 1df86abc02..b81dcca556 100644 --- a/packages/panels/src/Enums/Platform.php +++ b/packages/support/src/Enums/Platform.php @@ -1,6 +1,6 @@ userAgent(); + + return match (true) { + str_contains($userAgent, 'Windows') => Platform::Windows, + str_contains($userAgent, 'Mac') => Platform::Mac, + str_contains($userAgent, 'Linux') => Platform::Linux, + default => Platform::Other, + }; + } +}