Skip to content

Commit 0c528a3

Browse files
committed
Refactored ListField and ListFieldTrait to streamline item options configuration
1 parent f6fd6d6 commit 0c528a3

File tree

2 files changed

+19
-37
lines changed

2 files changed

+19
-37
lines changed

src/lib/Twig/Components/AltRadio/ListField.php

Lines changed: 12 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -40,43 +40,19 @@ protected function configurePropsResolver(OptionsResolver $resolver): void
4040
{
4141
$this->validateListFieldProps($resolver);
4242

43-
$resolver->setOptions('items', static function (OptionsResolver $itemsResolver): void {
44-
$itemsResolver->setPrototype(true);
45-
46-
$itemsResolver
47-
->define('id')
48-
->required()
49-
->allowedTypes('string')
50-
->allowedValues(static fn (string $value): bool => trim($value) !== '');
51-
52-
$itemsResolver
53-
->define('value')
54-
->required()
55-
->allowedTypes('string', 'int');
56-
57-
$itemsResolver
58-
->define('label')
59-
->required()
60-
->allowedTypes('string');
61-
62-
$itemsResolver
63-
->define('disabled')
64-
->allowedTypes('bool')
65-
->default(false);
66-
67-
$itemsResolver
68-
->define('tileClass')
69-
->allowedTypes('string')
70-
->default('');
43+
$resolver->setDefault('direction', self::HORIZONTAL);
44+
$resolver->setDefault('value', '');
45+
$resolver->setAllowedTypes('value', 'string');
46+
}
7147

72-
$itemsResolver
73-
->define('attributes')
74-
->allowedTypes('array')
75-
->default([]);
76-
});
48+
protected function configureListFieldItemOptions(OptionsResolver $itemsResolver): void
49+
{
50+
$itemsResolver
51+
->define('tileClass')
52+
->allowedTypes('string')
53+
->default('');
7754

78-
$resolver->setDefaults(['direction' => 'horizontal']);
79-
$resolver->setDefaults(['value' => '']);
80-
$resolver->setAllowedTypes('value', 'string');
55+
$itemsResolver->setDefault('disabled', false);
56+
$itemsResolver->setDefault('attributes', []);
8157
}
8258
}

src/lib/Twig/Components/ListFieldTrait.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ protected function validateListFieldProps(OptionsResolver $resolver): void
6666
->default([])
6767
->allowedTypes('array');
6868

69-
$resolver->setOptions('items', static function (OptionsResolver $itemsResolver): void {
69+
$resolver->setOptions('items', function (OptionsResolver $itemsResolver): void {
7070
$itemsResolver->setPrototype(true);
7171
$itemsResolver
7272
->define('id')
@@ -111,11 +111,17 @@ protected function validateListFieldProps(OptionsResolver $resolver): void
111111
$itemsResolver
112112
->define('required')
113113
->allowedTypes('bool');
114+
115+
$this->configureListFieldItemOptions($itemsResolver);
114116
});
115117

116118
$resolver
117119
->define('direction')
118120
->allowedValues(self::VERTICAL, self::HORIZONTAL)
119121
->default(self::VERTICAL);
120122
}
123+
124+
protected function configureListFieldItemOptions(OptionsResolver $itemsResolver): void
125+
{
126+
}
121127
}

0 commit comments

Comments
 (0)