summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiDeoo2024-12-11 19:47:00 +0100
committerGitHub2024-12-11 19:47:00 +0100
commit7f922e36ea8ed2462ff55e7917d3104d500490ad (patch)
tree03d0a15c26c910c974c7db004cd90575b0c7ee8d
parentc27f12893092acb81c1272d29b79e65ba60e9725 (diff)
downloadIT.starlight-7f922e36ea8ed2462ff55e7917d3104d500490ad.tar.gz
IT.starlight-7f922e36ea8ed2462ff55e7917d3104d500490ad.tar.bz2
IT.starlight-7f922e36ea8ed2462ff55e7917d3104d500490ad.zip
docs: use single listener in icons reference (#2657)
-rw-r--r--docs/src/components/icons-list.astro27
1 files changed, 14 insertions, 13 deletions
diff --git a/docs/src/components/icons-list.astro b/docs/src/components/icons-list.astro
index dfd4c590..9c83c7b1 100644
--- a/docs/src/components/icons-list.astro
+++ b/docs/src/components/icons-list.astro
@@ -27,21 +27,22 @@ const icons = Object.keys(Icons) as (keyof typeof Icons)[];
</div>
<script>
+ const iconGrid = document.querySelector<HTMLDivElement>('.icons-grid');
const copiedLabel = document.querySelector<HTMLDivElement>('.icons-grid')?.dataset.labelCopied!;
- const icons = document.querySelectorAll<HTMLButtonElement>('.icon-preview');
- icons.forEach((icon) => {
- icon.addEventListener('click', () => {
- const iconName = icon.dataset.name!;
- navigator.clipboard.writeText(iconName);
+ iconGrid?.addEventListener('click', (event) => {
+ if (!(event.target instanceof Element)) return;
+ const icon = event.target.closest('.icon-preview');
+ if (!(icon instanceof HTMLButtonElement)) return;
+ const iconName = icon.dataset.name!;
+ navigator.clipboard.writeText(iconName);
- const iconLabel = icon.querySelector('[aria-live]');
- if (iconLabel) {
- iconLabel.textContent = copiedLabel;
- setTimeout(() => {
- iconLabel.textContent = iconName;
- }, 1000);
- }
- });
+ const iconLabel = icon.querySelector('[aria-live]');
+ if (iconLabel) {
+ iconLabel.textContent = copiedLabel;
+ setTimeout(() => {
+ iconLabel.textContent = iconName;
+ }, 1000);
+ }
});
</script>