Skip to content

Commit 4475fc0

Browse files
committed
fix: mediaPicker and contentPicker have error while getValue
1 parent 08bf4c1 commit 4475fc0

4 files changed

Lines changed: 24 additions & 8 deletions

File tree

src/Fields/Configs/ContentPicker.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
use SolutionForest\FilamentFieldGroup\FieldTypes\Configs\Attributes\FormComponent;
1010
use SolutionForest\FilamentFieldGroup\FieldTypes\Configs\Contracts\FieldTypeConfig;
1111
use SolutionForest\FilamentFieldGroup\FieldTypes\Configs\FieldTypeBaseConfig;
12+
use SolutionForest\InspireCms\Fields\Configs\Attributes\Converter;
13+
use SolutionForest\InspireCms\Fields\Converters\ContentPickerConverter;
1214
use SolutionForest\InspireCms\Filament\Forms\Components\ContentPicker as ContentPickerComponent;
1315
use SolutionForest\InspireCms\Helpers\UIHelper;
1416
use SolutionForest\InspireCms\InspireCmsConfig;
@@ -18,6 +20,7 @@
1820
#[FormComponent(ContentPickerComponent::class)]
1921
#[DbType('mysql', 'varchar')]
2022
#[DbType('sqlite', 'text')]
23+
#[Converter(ContentPickerConverter::class)]
2124
class ContentPicker extends FieldTypeBaseConfig implements FieldTypeConfig
2225
{
2326
public ?int $max = null;

src/Fields/Converters/MediaPickerConverter.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ public function toDisplayValue(mixed $sourceValue, ?string $locale, ?string $fal
1313
// todo: improve performance
1414
$result = [];
1515

16+
if (is_null($sourceValue)) {
17+
return $result;
18+
}
19+
1620
$keysToFind = collect($sourceValue)->where(fn ($v) => is_string($v));
1721
$mediaAssets = $keysToFind->isNotEmpty()
1822
? inspirecms_asset()->findByKeys($keysToFind->all())->mapWithKeys(fn (Model $record) => [$record->getKey() => $record])

src/Fields/PropertyValueTransformer.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class PropertyValueTransformer implements PropertyValueTransformerInterface
1414
{
1515
public function transform(PropertyDataDto $propertyDataDto, ?string $locale, ?string $fallbackLocale)
1616
{
17-
$converter = $this->getConverter($propertyDataDto->propertyType?->config);
17+
$converter = $this->getConverter($propertyDataDto?->propertyType?->config);
1818

1919
return $converter->toDisplayValue($propertyDataDto->getSourceValue(), $locale, $fallbackLocale);
2020
}
@@ -24,6 +24,12 @@ public function attemptTransform(PropertyDataDto $propertyDataDto, ?string $loca
2424
try {
2525
return $this->transform($propertyDataDto, $locale, $fallbackLocale);
2626
} catch (\Exception $e) {
27+
28+
logger()->warning('Failed to transform property data', [
29+
'exception' => $e,
30+
'propertyData' => $propertyDataDto,
31+
]);
32+
2733
return null;
2834
}
2935
}

stubs/SampleTemplates/manifest/Blogs.stub

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
@php
2+
use SolutionForest\InspireCms\Dtos\ContentDto;
3+
24
$blogPage = request()->query('page') ?? 1;
35
$featuredPage = request()->query('featured') ?? 1;
46

@@ -17,13 +19,14 @@
1719
</div>
1820
</section>
1921
<div class="container ps-0">
20-
@propertyArray('featured_blogs', 'blogs')
21-
@php
22-
$featuredBlog = collect($featured_blogs_blogs)->skip($featuredPage - 1)->first();
23-
$featuredBlogTemplate = $featuredBlog?->getTemplate('blog-featured-item');
24-
@endphp
25-
@if ($featuredBlogTemplate)
26-
{!! $featuredBlogTemplate->render(['content' => $featuredBlog, 'locale' => $locale]) !!}
22+
@propertyNotEmpty('featured_blogs', 'blogs')
23+
@php
24+
$featuredBlog = collect($featured_blogs_blogs)->skip($featuredPage - 1)->first();
25+
$featuredBlogTemplate = $featuredBlog instanceof ContentDto ? $featuredBlog?->getTemplate('blog-featured-item') : null;
26+
@endphp
27+
@if ($featuredBlogTemplate)
28+
{!! $featuredBlogTemplate->render(['content' => $featuredBlog, 'locale' => $locale]) !!}
29+
@endif
2730
@endif
2831

2932
<div class="categories-wrapper">

0 commit comments

Comments
 (0)