diff options
author | HiDeoo | 2024-12-11 19:47:00 +0100 |
---|---|---|
committer | GitHub | 2024-12-11 19:47:00 +0100 |
commit | 7f922e36ea8ed2462ff55e7917d3104d500490ad (patch) | |
tree | 03d0a15c26c910c974c7db004cd90575b0c7ee8d | |
parent | c27f12893092acb81c1272d29b79e65ba60e9725 (diff) | |
download | IT.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.astro | 27 |
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> |