|
3 | 3 | namespace Code16\Sharp\Utils\Fields; |
4 | 4 |
|
5 | 5 | use Code16\Sharp\Form\Fields\SharpFormField; |
| 6 | +use Code16\Sharp\Form\Fields\SharpFormHtmlField; |
6 | 7 | use Code16\Sharp\Show\Fields\SharpShowField; |
7 | 8 | use Illuminate\Support\Collection; |
8 | 9 |
|
@@ -87,12 +88,38 @@ final public function applyFormatters(?array $attributes): ?array |
87 | 88 |
|
88 | 89 | $field = $this->findFieldByKey($key); |
89 | 90 |
|
| 91 | + if ($field instanceof SharpFormHtmlField) { |
| 92 | + return $value; |
| 93 | + } |
| 94 | + |
90 | 95 | return $field |
91 | 96 | ? $field->formatter() |
92 | 97 | ->setDataLocalizations($this->getDataLocalizations()) |
93 | 98 | ->toFront($field, $value) |
94 | 99 | : $value; |
95 | 100 | }) |
| 101 | + ->pipe(function (Collection $data) { |
| 102 | + $formData = collect($data)->map(function ($value, $key) { |
| 103 | + if ($field = $this->findFieldByKey($key)) { |
| 104 | + return $field->formatter() |
| 105 | + ->setDataLocalizations($this->getDataLocalizations()) |
| 106 | + ->fromFront($field, $key, $value); |
| 107 | + } |
| 108 | + |
| 109 | + return $value; |
| 110 | + })->all(); |
| 111 | + |
| 112 | + return $data->map(function ($value, $key) use ($formData) { |
| 113 | + if (($field = $this->findFieldByKey($key)) instanceof SharpFormHtmlField) { |
| 114 | + return $field->formatter() |
| 115 | + ->setRenderData(fieldKey: $key, formData: $formData) |
| 116 | + ->setDataLocalizations($this->getDataLocalizations()) |
| 117 | + ->toFront($field, $value); |
| 118 | + } |
| 119 | + |
| 120 | + return $value; |
| 121 | + }); |
| 122 | + }) |
96 | 123 | ->all(); |
97 | 124 | } |
98 | 125 |
|
|
0 commit comments