From 6e170c8cf39d57c26e400a989cfdb2d4c5afbf65 Mon Sep 17 00:00:00 2001 From: Vale_Th <143950092+ValeThReal@users.noreply.github.com> Date: Sun, 4 Jan 2026 03:41:49 +0000 Subject: [PATCH] Main --- snowflakes/config/snowflakes.php | 1 + snowflakes/lang/en/strings.php | 2 ++ .../Providers/SnowflakesPluginProvider.php | 11 ++++++++-- snowflakes/src/SnowflakesPlugin.php | 20 ++++++++++++++++++- 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/snowflakes/config/snowflakes.php b/snowflakes/config/snowflakes.php index 21441203..ceedbcb2 100644 --- a/snowflakes/config/snowflakes.php +++ b/snowflakes/config/snowflakes.php @@ -1,6 +1,7 @@ env('SNOWFLAKES_ENABLED', true), 'size' => env('SNOWFLAKES_SIZE', 0.8), 'speed' => env('SNOWFLAKES_SPEED', 1), 'opacity' => env('SNOWFLAKES_OPACITY', 0.5), diff --git a/snowflakes/lang/en/strings.php b/snowflakes/lang/en/strings.php index 8bd13fc0..2c3a538b 100644 --- a/snowflakes/lang/en/strings.php +++ b/snowflakes/lang/en/strings.php @@ -1,6 +1,8 @@ 'Enable Snowflakes', + 'enabled_help' => 'Toggle snowflakes on or off.', 'size' => 'Size', 'size_help' => 'Size of the snowflakes.', 'speed' => 'Speed', diff --git a/snowflakes/src/Providers/SnowflakesPluginProvider.php b/snowflakes/src/Providers/SnowflakesPluginProvider.php index d3d851f1..548aa49d 100644 --- a/snowflakes/src/Providers/SnowflakesPluginProvider.php +++ b/snowflakes/src/Providers/SnowflakesPluginProvider.php @@ -11,9 +11,16 @@ class SnowflakesPluginProvider extends ServiceProvider { public function boot(): void { + $isEnabled = config('snowflakes.enabled'); + + // Check user customization if the user is authenticated + if ($isEnabled && auth()->check()) { + $isEnabled = user()?->getCustomization('snowflakes_enabled') ?? true; + } + FilamentView::registerRenderHook( PanelsRenderHook::PAGE_START, - fn () => Blade::render(<<<'HTML' + fn () => $isEnabled ? Blade::render(<<<'HTML' - HTML, config('snowflakes')) + HTML, config('snowflakes')) : '' ); } } diff --git a/snowflakes/src/SnowflakesPlugin.php b/snowflakes/src/SnowflakesPlugin.php index 0d21f803..d3864e2c 100644 --- a/snowflakes/src/SnowflakesPlugin.php +++ b/snowflakes/src/SnowflakesPlugin.php @@ -3,14 +3,16 @@ namespace Boy132\Snowflakes; use App\Contracts\Plugins\HasPluginSettings; +use App\Contracts\Plugins\HasUserCustomization; use App\Traits\EnvironmentWriterTrait; use Filament\Contracts\Plugin; +use Filament\Forms\Components\Checkbox; use Filament\Forms\Components\Slider; use Filament\Notifications\Notification; use Filament\Panel; use Filament\Schemas\Components\Group; -class SnowflakesPlugin implements HasPluginSettings, Plugin +class SnowflakesPlugin implements HasPluginSettings, HasUserCustomization, Plugin { use EnvironmentWriterTrait; @@ -26,6 +28,11 @@ public function boot(Panel $panel): void {} public function getSettingsForm(): array { $schema = [ + Checkbox::make('SNOWFLAKES_ENABLED') + ->label(trans('snowflakes::strings.enabled')) + ->hintIcon('tabler-question-mark') + ->hintIconTooltip(trans('snowflakes::strings.enabled_help')) + ->default(fn () => config('snowflakes.enabled')), Slider::make('SNOWFLAKES_SIZE') ->label(trans('snowflakes::strings.size')) ->range(minValue: 0.5, maxValue: 4) @@ -89,4 +96,15 @@ public function saveSettings(array $data): void ->success() ->send(); } + + public function getCustomizationForm(): array + { + return [ + Checkbox::make('snowflakes_enabled') + ->label(trans('snowflakes::strings.enabled')) + ->hintIcon('tabler-question-mark') + ->hintIconTooltip(trans('snowflakes::strings.enabled_help')) + ->default(true), + ]; + } }