Skip to content

Commit d36b98e

Browse files
stehledsmnandre
authored andcommitted
[LiveComponent] ComponentWithFormTrait now correctly checks for a TranslatableInterface placeholder for <select> elements, close #2621
Co-authored-by: Simon André <[email protected]>
1 parent 9d42463 commit d36b98e

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

src/LiveComponent/CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## 2.25.0
44

55
- Add support for [Symfony UID](https://symfony.com/doc/current/components/uid.html) hydration/dehydration
6+
- `ComponentWithFormTrait` now correctly checks for a `TranslatableInterface` placeholder for `<select>` elements
67

78
## 2.23.0
89

src/LiveComponent/src/ComponentWithFormTrait.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Symfony\Component\Form\FormInterface;
1717
use Symfony\Component\Form\FormView;
1818
use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException;
19+
use Symfony\Contracts\Translation\TranslatableInterface;
1920
use Symfony\UX\LiveComponent\Attribute\LiveProp;
2021
use Symfony\UX\LiveComponent\Attribute\PreReRender;
2122
use Symfony\UX\LiveComponent\Util\LiveFormUtility;
@@ -286,7 +287,8 @@ private function extractFormValues(FormView $formView): array
286287
)
287288
&& !$child->vars['expanded'] // is a <select> (not a radio/checkbox)
288289
&& !$child->vars['multiple'] // is not multiple
289-
&& !\is_string($child->vars['placeholder']) // has no placeholder (empty string is valid)
290+
&& !\is_string($child->vars['placeholder']) // has no placeholder (empty string is valid)
291+
&& !$child->vars['placeholder'] instanceof TranslatableInterface // has no placeholder (translatable interface is valid)
290292
) {
291293
$choices = $child->vars['preferred_choices'] ?: $child->vars['choices']; // preferred_choices has precedence, as they rendered before regular choices
292294
do {

0 commit comments

Comments
 (0)