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),
+ ];
+ }
}