<?php

use MintyPHP\Module\Bookmarks\Support\BookmarkUrlNormalizer;

$layoutNav = is_array($layoutNav ?? null) ? $layoutNav : [];
$bookmarkNav = is_array($layoutNav['bookmarks.nav'] ?? null) ? $layoutNav['bookmarks.nav'] : [];
$bookmarkData = is_array($bookmarkNav['grouped'] ?? null) ? $bookmarkNav['grouped'] : ['groups' => [], 'ungrouped' => []];
$bookmarkGroups = is_array($bookmarkData['groups'] ?? null) ? $bookmarkData['groups'] : [];
$bookmarkUngrouped = is_array($bookmarkData['ungrouped'] ?? null) ? $bookmarkData['ungrouped'] : [];
$currentPath = trim((string) ($bookmarkNav['current_path'] ?? ''));

$existing = null;
if ($currentPath !== '') {
    foreach ($bookmarkUngrouped as $bookmark) {
        $bookmarkUrl = BookmarkUrlNormalizer::canonicalizeRelative((string) ($bookmark['url'] ?? ''));
        if ($bookmarkUrl !== '' && $bookmarkUrl === $currentPath) {
            $existing = $bookmark;
            break;
        }
    }

    if ($existing === null) {
        foreach ($bookmarkGroups as $group) {
            foreach ((is_array($group['bookmarks'] ?? null) ? $group['bookmarks'] : []) as $bookmark) {
                $bookmarkUrl = BookmarkUrlNormalizer::canonicalizeRelative((string) ($bookmark['url'] ?? ''));
                if ($bookmarkUrl !== '' && $bookmarkUrl === $currentPath) {
                    $existing = $bookmark;
                    break 2;
                }
            }
        }
    }
}
?>
<li>
    <button type="button" data-bookmark-open-dialog
        aria-label="<?php e($existing ? t('Edit bookmark') : t('Bookmarks')); ?>"
        data-tooltip="<?php e($existing ? t('Edit bookmark') : t('Bookmarks')); ?>" data-tooltip-pos="bottom"
        <?php if ($existing): ?>
            data-bookmark-existing-id="<?php e((int) ($existing['id'] ?? 0)); ?>"
            data-bookmark-existing-name="<?php e(trim((string) ($existing['name'] ?? ''))); ?>"
            data-bookmark-existing-group="<?php e($existing['group_id'] ?? ''); ?>"
        <?php endif; ?>>
        <i class="bi <?php e($existing ? 'bi-bookmark-fill' : 'bi-bookmark'); ?>"></i>
    </button>
</li>
