diff --git a/app/Classes/FilamentInput.php b/app/Classes/FilamentInput.php index d1b5a2e47..72b11beb1 100644 --- a/app/Classes/FilamentInput.php +++ b/app/Classes/FilamentInput.php @@ -90,14 +90,22 @@ class FilamentInput break; case 'tags': - return TagsInput::make($setting->name) + $input = TagsInput::make($setting->name) ->label($setting->label ?? $setting->name) ->placeholder($setting->placeholder ?? '') - ->required($setting->required ?? false) ->disabled($setting->disabled ?? false) ->hint($setting->hint ?? '') ->hintColor('primary') ->helperText($setting->description ?? ''); + + // For required TagsInput, we need to validate the array has at least one item + // Filament's required() alone considers empty arrays as "filled" + if ($setting->required ?? false) { + $input->required() + ->rules(['array', 'min:1']); + } + + return $input; break; case 'text':