<?php
/**
 * Hyvä Themes - https://hyva.io
 * Copyright © Hyvä Themes. All rights reserved.
 * See COPYING.txt for license details.
 */

declare(strict_types=1);

use Hyva\Theme\Model\ViewModelRegistry;
use Magento\Catalog\Block\Product\View\Gallery;
use Magento\Catalog\Helper\Image;
use Magento\Framework\Escaper;

/** @var Gallery $block */
/** @var Escaper $escaper */
/** @var ViewModelRegistry $viewModels */

$images = $block->getGalleryImages()->getItems();
$mainImage = current(array_filter($images, [$block, 'isMainImage']));

if (!empty($images) && empty($mainImage)) {
    $mainImage = reset($images);
}

/** @var Image $helper */
$helper = $block->getData('imageHelper') ?? $viewModels->require(Image::class);

$mainImageData = $mainImage
    ? $mainImage->getData('medium_image_url')
    : $helper->getDefaultPlaceholderUrl('image');
?>

<link rel="preload" href="<?= $escaper->escapeUrl($mainImageData) ?>" as="image">
