Skip to content

Commit cac93c7

Browse files
committed
fix animation blip when closing the detailed version modal
1 parent 320386e commit cac93c7

1 file changed

Lines changed: 43 additions & 44 deletions

File tree

templates/element/Packages/package-tile.php

Lines changed: 43 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@
66
*/
77
$isFeatured = $isFeatured ?? false;
88
$query = $this->getRequest()->getQueryParams();
9+
$tagGroups = $package->cake_php_tag_groups;
10+
krsort($tagGroups);
11+
$existingSlugs = (array)($query['cakephp_slugs'] ?? []);
12+
$packageId = preg_replace('/[^a-z0-9]/i', '-', strtolower($package->package));
13+
$dialogId = 'compat-' . $packageId;
914
?>
1015
<article class="card h-full rounded-3xl border border-base-300 bg-base-100 shadow-sm transition hover:-translate-y-1 hover:shadow-lg overflow-hidden">
1116
<a class="card-header block bg-base-200 px-5 py-4 transition hover:bg-base-100 border-b border-base-300"
@@ -36,13 +41,6 @@
3641
<p class="mb-2 text-xs font-semibold uppercase tracking-[0.2em] opacity-60">
3742
<?= __('CakePHP Compatibility') ?>
3843
</p>
39-
<?php
40-
$tagGroups = $package->cake_php_tag_groups;
41-
krsort($tagGroups);
42-
$existingSlugs = (array)($query['cakephp_slugs'] ?? []);
43-
$packageId = preg_replace('/[^a-z0-9]/i', '-', strtolower($package->package));
44-
$dialogId = 'compat-' . $packageId;
45-
?>
4644
<div class="flex flex-wrap gap-2">
4745
<?php foreach ($tagGroups as $majorVersion => $tags): ?>
4846
<?php
@@ -56,43 +54,6 @@ class="btn btn-xs <?= $isActive ? 'btn-primary' : 'btn-soft btn-primary' ?>">
5654
</button>
5755
<?php endforeach; ?>
5856
</div>
59-
60-
<dialog id="<?= h($dialogId) ?>" class="modal">
61-
<div class="modal-box max-w-md">
62-
<h3 class="mb-1 text-base font-semibold"><?= h($package->package) ?></h3>
63-
<p class="mb-4 text-xs opacity-50"><?= __('Filter by CakePHP version') ?></p>
64-
<div class="space-y-4">
65-
<?php foreach ($tagGroups as $majorVersion => $tags): ?>
66-
<div>
67-
<p class="mb-2 text-xs font-semibold uppercase tracking-wider opacity-50"><?= __('CakePHP {0}.x', h($majorVersion)) ?></p>
68-
<div class="flex flex-wrap gap-2">
69-
<?php foreach ($tags as $tag): ?>
70-
<?php
71-
$slug = $tag->slug;
72-
$tagIsActive = in_array($slug, $existingSlugs, true);
73-
$tagQuery = $query;
74-
$tagQuery['cakephp_slugs'] = $tagIsActive
75-
? array_values(array_diff($existingSlugs, [$slug]))
76-
: array_values(array_unique(array_merge($existingSlugs, [$slug])));
77-
unset($tagQuery['page']);
78-
?>
79-
<a href="<?= h($this->Url->build(['?' => $tagQuery])) ?>"
80-
class="btn btn-xs <?= $tagIsActive ? 'btn-error' : 'btn-soft btn-error' ?>">
81-
<?= h(str_replace('CakePHP: ', '', $tag->label)) ?>
82-
</a>
83-
<?php endforeach; ?>
84-
</div>
85-
</div>
86-
<?php endforeach; ?>
87-
</div>
88-
<div class="modal-action">
89-
<form method="dialog">
90-
<button class="btn btn-sm btn-ghost"><?= __('Close') ?></button>
91-
</form>
92-
</div>
93-
</div>
94-
<form method="dialog" class="modal-backdrop"><button><?= __('Close') ?></button></form>
95-
</dialog>
9657
</div>
9758
<?php endif; ?>
9859
</div>
@@ -127,3 +88,41 @@ class="btn btn-xs <?= $tagIsActive ? 'btn-error' : 'btn-soft btn-error' ?>">
12788
</div>
12889
</div>
12990
</article>
91+
<?php if ($package->cake_php_tags): ?>
92+
<dialog id="<?= h($dialogId) ?>" class="modal">
93+
<div class="modal-box max-w-md">
94+
<h3 class="mb-1 text-base font-semibold"><?= h($package->package) ?></h3>
95+
<p class="mb-4 text-xs opacity-50"><?= __('Filter by CakePHP version') ?></p>
96+
<div class="space-y-4">
97+
<?php foreach ($tagGroups as $majorVersion => $tags): ?>
98+
<div>
99+
<p class="mb-2 text-xs font-semibold uppercase tracking-wider opacity-50"><?= __('CakePHP {0}.x', h($majorVersion)) ?></p>
100+
<div class="flex flex-wrap gap-2">
101+
<?php foreach ($tags as $tag): ?>
102+
<?php
103+
$slug = $tag->slug;
104+
$tagIsActive = in_array($slug, $existingSlugs, true);
105+
$tagQuery = $query;
106+
$tagQuery['cakephp_slugs'] = $tagIsActive
107+
? array_values(array_diff($existingSlugs, [$slug]))
108+
: array_values(array_unique(array_merge($existingSlugs, [$slug])));
109+
unset($tagQuery['page']);
110+
?>
111+
<a href="<?= h($this->Url->build(['?' => $tagQuery])) ?>"
112+
class="btn btn-xs <?= $tagIsActive ? 'btn-error' : 'btn-soft btn-error' ?>">
113+
<?= h(str_replace('CakePHP: ', '', $tag->label)) ?>
114+
</a>
115+
<?php endforeach; ?>
116+
</div>
117+
</div>
118+
<?php endforeach; ?>
119+
</div>
120+
<div class="modal-action">
121+
<form method="dialog">
122+
<button class="btn btn-sm btn-ghost"><?= __('Close') ?></button>
123+
</form>
124+
</div>
125+
</div>
126+
<form method="dialog" class="modal-backdrop"><button><?= __('Close') ?></button></form>
127+
</dialog>
128+
<?php endif; ?>

0 commit comments

Comments
 (0)