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

use Hyva\Theme\Model\ViewModelRegistry;
use Hyva\Theme\ViewModel\HeroiconsOutline;
use Magento\Framework\Escaper;
use Magento\Sales\Block\Order\Items;
use Magento\Shipping\Helper\Data as ShippingHelper;

// phpcs:disable Magento2.Templates.ThisInTemplate.FoundThis
// phpcs:disable Magento2.Templates.ThisInTemplate.FoundHelper

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

/** @var HeroiconsOutline $heroicons */
$heroicons = $viewModels->require(HeroiconsOutline::class);

$order = $block->getOrder();
$shippingHelper = $this->helper(ShippingHelper::class);
?>
<?php foreach ($order->getShipmentsCollection() as $shipment): ?>
    <?php $tracks = $shipment->getTracksCollection(); ?>
    <div class="order-title text-center md:text-left font-semibold">
        <?= $escaper->escapeHtml(__('Shipment #')) ?><?= $escaper->escapeHtml($shipment->getIncrementId()) ?>
        <a href="<?= $escaper->escapeUrl($block->getUrl('*/*/printShipment', ['shipment_id' => $shipment->getId()])) ?>"
           class="inline-block ml-2 pl-2 border-l text-sm font-normal"
           target="_blank"
           rel="noopener">
            <?= $heroicons->printerHtml('inline-block', 20, 20); ?>
            <span class="inline-block ml-1 underline"><?= $escaper->escapeHtml(__('Print Shipment')) ?></span>
        </a>
        <?php if ($tracks->count()): ?>
            <a href="<?= $escaper->escapeUrl($shippingHelper->getTrackingPopupUrlBySalesModel($shipment)) ?>"
               target="_blank" rel="noopener" title="<?= $escaper->escapeHtml(__('Track Shipment')) ?>"
               class="inline-block ml-2 pl-2 border-l text-sm font-normal">
                <?= $heroicons->searchHtml('inline-block', 20, 20); ?>
                <span class="inline-block ml-1 underline"><?= $escaper->escapeHtml(__('Track Shipment')) ?></span>
            </a>
        <?php endif; ?>
    </div>
    <?php if ($tracks->count()): ?>
        <div class="my-2">
            <p><?= $escaper->escapeHtml(__('Tracking Number(s):')) ?></p>
            <div class="tracking-content">
                <?php
                $i    = 1;
                $size = $tracks->count();
                foreach ($tracks as $track): ?>
                    <?php if ($track->isCustom()): ?>
                        <?= $escaper->escapeHtml($track->getNumber()) ?>
                    <?php else: ?>
                        <a href="<?= $escaper->escapeUrl($shippingHelper->getTrackingPopupUrlBySalesModel($track)) ?>"
                           target="_blank" rel="noopener"
                           class="inline-block underline"><span><?= $escaper->escapeHtml($track->getNumber()) ?></span>
                        </a>
                    <?php endif; ?>
                    <?php if ($i != $size): ?>, <?php endif; ?>
                    <?php $i++;
                endforeach; ?>
            </div>
        </div>
    <?php endif; ?>

    <div class="order-items shipment">
        <div class="hidden lg:grid grid-cols-3 text-sm">
            <div class="p-2 col-span-2">
                <?= $escaper->escapeHtml(__('Product Name')) ?>
            </div>
            <div class="p-2"><?= $escaper->escapeHtml(__('Qty')) ?></div>
        </div>
        <?php $items = $shipment->getAllItems(); ?>
        <?php foreach ($items as $item): ?>
            <?php if (!$item->getOrderItem()->getParentItem()): ?>
                <?= $block->getItemHtml($item) ?>
            <?php endif; ?>
        <?php endforeach; ?>
    </div>
<?php endforeach; ?>
