<?php

declare(strict_types=1);

use Fisharebest\Webtrees\Contracts\TimestampInterface;
use Fisharebest\Webtrees\Contracts\UserInterface;
use Fisharebest\Webtrees\GedcomRecord;
use Fisharebest\Webtrees\I18N;
use Fisharebest\Webtrees\View;
use Illuminate\Support\Collection;

/**
 * @var int                                                                                    $id
 * @var int                                                                                    $limit_low
 * @var int                                                                                    $limit_high
 * @var Collection<int,object{record:GedcomRecord,time:TimestampInterface,user:UserInterface}> $rows
 * @var bool                                                                                   $show_date
 * @var bool                                                                                   $show_user
 */

?>

<?php foreach ($rows as $n => $row) : ?>
    <?php if ($n === $limit_low && $rows->count() > $limit_high) : ?>
        <div>
            <button class="btn btn-sm btn-secondary" id="show-more-<?= e($id) ?>">
                <?= view('icons/add') ?>
                <?= /* I18N: button label */ I18N::translate('show more') ?>
            </button>
        </div>

        <?php View::push('javascript') ?>
        <script>
            document.getElementById("show-more-<?= e($id) ?>").addEventListener("click", function (ev) {
                document.querySelectorAll("#block-<?= e($id) ?> .d-none").forEach(function (el) {
                    el.classList.remove("d-none");
                });
                ev.target.parentNode.removeChild(ev.target);
            });
        </script>
        <?php View::endpush() ?>
    <?php endif ?>

    <div class="<?= $n >= $limit_low && $rows->count() > $limit_high ? 'd-none' : '' ?>">
        <a href="<?= e($row->record->url()) ?>">
            <?= $row->record->fullName() ?>
        </a>

        <div class="indent mb-1">
            <?php if ($show_user && $show_date) : ?>
                <?= /* I18N: [a record was] Changed on <date/time> by <user> */I18N::translate('Changed on %1$s by %2$s', view('components/datetime', ['timestamp' => $row->time]), e($row->record->lastChangeUser())) ?>
            <?php elseif ($show_date) : ?>
                <?= /* I18N: [a record was] Changed on <date/time> */ I18N::translate('Changed on %1$s', view('components/datetime', ['timestamp' => $row->time])) ?>
            <?php elseif ($show_user) : ?>
                <?= /* I18N: [a record was] Changed by <user> */ I18N::translate('Changed by %1$s', e($row->user->userName())) ?>
            <?php endif ?>
        </div>
    </div>
<?php endforeach ?>
