From b0f32daa7902f20e73041aa852b3d60fcad13d64 Mon Sep 17 00:00:00 2001 From: Sebastian Thulin Date: Wed, 25 Sep 2024 16:33:07 +0200 Subject: [PATCH] feat: add image contract to segment cards in lists. (#671) Co-authored-by: Sebastian Thulin --- source/php/Module/ManualInput/ManualInput.php | 18 +++++++++++++++++- .../views/appearances/segment.blade.php | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/source/php/Module/ManualInput/ManualInput.php b/source/php/Module/ManualInput/ManualInput.php index 8e56fa952..1e7fdded1 100644 --- a/source/php/Module/ManualInput/ManualInput.php +++ b/source/php/Module/ManualInput/ManualInput.php @@ -4,6 +4,10 @@ use Municipio\Helper\Image as ImageHelper; +use Modularity\Integrations\Component\ImageResolver; +use Modularity\Integrations\Component\ImageFocusResolver; +use ComponentLibrary\Integrations\Image\Image as ImageComponentContract; + class ManualInput extends \Modularity\Module { public $slug = 'manualinput'; @@ -48,7 +52,7 @@ public function data(): array }); $arr = array_merge($this->getManualInputDefaultValues(), $input); $arr['isHighlighted'] = $this->canBeHighlighted($fields, $index); - $arr['image'] = $this->getImageData($arr['image'], $imageSize); + $arr['image'] = $this->maybeGetImageImageContract($displayAs, $arr['image']) ?? $this->getImageData($arr['image'], $imageSize); $arr['accordion_column_values'] = $this->createAccordionTitles($arr['accordion_column_values'], $arr['title']); $arr['view'] = $this->getInputView($arr['isHighlighted']); $arr['columnSize'] = $this->getInputColumnSize($fields, $arr['isHighlighted']); @@ -60,6 +64,18 @@ public function data(): array return $data; } + private function maybeGetImageImageContract(string $displayAs, int $imageId) { + if (in_array($displayAs, ['segment'])) { + return ImageComponentContract::factory( + $imageId, + [1920, false], + new ImageResolver() + ); + } + + return null; + } + /** * @return array Array with default values */ diff --git a/source/php/Module/ManualInput/views/appearances/segment.blade.php b/source/php/Module/ManualInput/views/appearances/segment.blade.php index 6cd73b1e9..5aa7eda98 100644 --- a/source/php/Module/ManualInput/views/appearances/segment.blade.php +++ b/source/php/Module/ManualInput/views/appearances/segment.blade.php @@ -2,7 +2,7 @@ 'layout' => 'card', 'title' => $input['title'], 'context' => $context, - 'image' => $input['image']['src'], + 'image' => $input['image'], 'content' => $input['content'], 'buttons' => [['text' => $input['linkText'], 'href' => $input['link'], 'color' => 'primary']], 'containerAware' => true,