@props([ 'title' => 'Our Work', 'relatedWorks' => null, 'items' => null, 'viewAllUrl' => route('frontend.archive'), 'viewAllText' => 'View All', 'enableGalleryLightbox' => true, 'lightboxTrigger' => 'archive', ]) @php $defaultItems = require base_path('Modules/Frontend/resources/data/gallery-portfolio-items.php'); $carouselItems = []; if (is_array($items) && $items !== []) { if (isset($items['list']) && is_array($items['list'])) { $relatedWorks = $items; } else { $carouselItems = array_values($items); } } if ($carouselItems === [] && is_array($relatedWorks)) { $rows = null; if (isset($relatedWorks['list']) && is_array($relatedWorks['list'])) { $rows = $relatedWorks['list']; } elseif (array_is_list($relatedWorks)) { $rows = $relatedWorks; } if (is_array($rows)) { foreach ($rows as $row) { if (! is_array($row)) { continue; } $catName = ''; if (! empty($row['categories'][0]) && is_array($row['categories'][0])) { $catName = (string) ($row['categories'][0]['name'] ?? ''); } $mediaSlides = \Modules\Frontend\app\Support\GalleryMediaSlides::fromContentListRow($row); $coverImage = ''; foreach ($mediaSlides as $s) { if (($s['type'] ?? '') === 'image' && ! empty($s['src'])) { $coverImage = $s['src']; break; } } if ($coverImage === '') { $coverImage = check_file($row['image'] ?? ''); } $galleryImages = []; if ($coverImage !== '') { $galleryImages[] = $coverImage; } $legacy = $row['images'] ?? null; if (is_array($legacy) && $legacy !== []) { foreach (array_values(array_filter($legacy)) as $p) { if (is_string($p) && trim($p) !== '') { $galleryImages[] = trim($p); } } } $galleryImages = array_values(array_unique($galleryImages)); if (count($mediaSlides) === 0 && $galleryImages === []) { continue; } $carouselItems[] = [ 'category' => $catName, 'title' => (string) ($row['title'] ?? $row['name'] ?? ''), 'images' => $galleryImages, 'image' => $galleryImages[0] ?? $coverImage, 'url' => $row['url'] ?? null, 'media_slides' => $mediaSlides, ]; } } } if ($carouselItems === []) { $carouselItems = $defaultItems; } @endphp

{{ $title }}

{{ $viewAllText }}
@if ($enableGalleryLightbox) @once @include('frontend::components.card-gallery-lightbox') @endonce @endif