Enhance TagsInput validation: ensure at least one item is required for non-empty arrays
This commit is contained in:
@@ -90,14 +90,22 @@ class FilamentInput
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'tags':
|
case 'tags':
|
||||||
return TagsInput::make($setting->name)
|
$input = TagsInput::make($setting->name)
|
||||||
->label($setting->label ?? $setting->name)
|
->label($setting->label ?? $setting->name)
|
||||||
->placeholder($setting->placeholder ?? '')
|
->placeholder($setting->placeholder ?? '')
|
||||||
->required($setting->required ?? false)
|
|
||||||
->disabled($setting->disabled ?? false)
|
->disabled($setting->disabled ?? false)
|
||||||
->hint($setting->hint ?? '')
|
->hint($setting->hint ?? '')
|
||||||
->hintColor('primary')
|
->hintColor('primary')
|
||||||
->helperText($setting->description ?? '');
|
->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;
|
break;
|
||||||
|
|
||||||
case 'text':
|
case 'text':
|
||||||
|
|||||||
Reference in New Issue
Block a user