<?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 Hyva\Theme\ViewModel\Modal;
use Magento\Framework\Escaper;
use Magento\Framework\View\Element\Template;
use Magento\Vault\Api\Data\PaymentTokenInterface;
use Magento\Vault\Block\CardRendererInterface;

/** @var CardRendererInterface|Template $block */
/** @var Escaper $escaper */
/** @var ViewModelRegistry $viewModels */

$modalViewModel = $viewModels->require(Modal::class);

$ccNumberView = $escaper->escapeHtml($block->getNumberLast4Digits());

$i = $block->getParentBlock()->getData('cards_row_number') + 1 ?? 0;
$block->getParentBlock()->setData('cards_row_number', $i);
?>
<div class="p-2 flex items-center <?= $i % 2 === 0 ? '' : ' bg-gray-100' ?>">
    <div class="text-sm">
        <span class="hidden lg:inline">
            <?= $escaper->escapeHtml(__('ending')) ?>
        </span> <?= /* @noEscape */ $ccNumberView ?>
    </div>
</div>
<div class="p-2 flex <?= $i % 2 === 0 ? '' : ' bg-gray-100' ?>">
    <div class="text-sm"><?= $escaper->escapeHtml($block->getExpDate()) ?></div>
</div>
<div class="p-2 items-center hidden lg:flex <?= $i % 2 === 0 ? '' : ' bg-gray-100' ?>">
    <div class="text-sm">
        <img src="<?= /* @noEscape */ $block->getIconUrl() ?>"
             width="<?= /* @noEscape */ $block->getIconWidth() ?>"
             height="<?= /* @noEscape */ $block->getIconHeight() ?>"
             alt=""
        >
    </div>
</div>
<div class="p-2 flex items-center <?= $i % 2 === 0 ? '' : ' bg-gray-100' ?>" x-data="hyva.modal()">
    <div class="text-sm">
    <form class="form"
          action="<?= $escaper->escapeUrl($block->getUrl('vault/cards/deleteaction')) ?>"
          method="post"
          x-ref="form">
        <?= $block->getBlockHtml('formkey') ?>
        <input
            name="<?= /* @noEscape */ PaymentTokenInterface::PUBLIC_HASH ?>"
            value="<?= $escaper->escapeHtmlAttr($block->getToken()->getPublicHash()) ?>"
            type="hidden">

        <?php $message = $escaper->escapeHtml(__('Are you sure you want to delete this card: %1?', $ccNumberView)) ?>
        <?php $confirmation = $modalViewModel->confirm($message) ?>
        <button type="button"
                @click="<?= /** @noEscape */ $confirmation->getShowJs() ?>.then(ok => ok && $refs.form.submit())">
            <?= $escaper->escapeHtml(__('Delete')) ?>
        </button>
        <?= /** @noEscape */ $confirmation ?>
    </form>
    </div>
</div>
