From e42b33fc5ba0b198110234cbda123a871a8ec1f1 Mon Sep 17 00:00:00 2001 From: Stefan Imhoff Date: Thu, 15 Jun 2023 09:01:25 +0200 Subject: [PATCH] fix: move some scripts to central file because of issue with Swup --- src/components/ActiveNavigationCheck.astro | 20 ------------ src/components/EmailLink.astro | 20 ------------ src/components/Scripts.astro | 36 ++++++++++++++++++++++ src/components/UpLink.astro | 12 -------- types/swup.d.ts | 3 +- 5 files changed, 38 insertions(+), 53 deletions(-) delete mode 100644 src/components/ActiveNavigationCheck.astro diff --git a/src/components/ActiveNavigationCheck.astro b/src/components/ActiveNavigationCheck.astro deleted file mode 100644 index c9faa3f..0000000 --- a/src/components/ActiveNavigationCheck.astro +++ /dev/null @@ -1,20 +0,0 @@ ---- ---- - - diff --git a/src/components/EmailLink.astro b/src/components/EmailLink.astro index 4a9fdb3..b628698 100644 --- a/src/components/EmailLink.astro +++ b/src/components/EmailLink.astro @@ -25,23 +25,3 @@ const { text = 'Email', icon = true, ...props } = Astro.props; ) } - - diff --git a/src/components/Scripts.astro b/src/components/Scripts.astro index f5be23b..6a097f8 100644 --- a/src/components/Scripts.astro +++ b/src/components/Scripts.astro @@ -48,6 +48,8 @@ import '../styles/sal.css'; }); setActiveLink(); + setUpLink(); + setEmailLink(); } }); @@ -64,7 +66,41 @@ import '../styles/sal.css'; }); } + function setUpLink() { + const button = document.getElementById('up-link'); + button?.addEventListener('click', (event) => { + event.preventDefault(); + window.scrollTo({ + top: 0, + left: 0, + behavior: 'smooth', + }); + }); + } + + function handleEmailClick(event: Event) { + event.preventDefault(); + const currentTarget = event.currentTarget; + if (currentTarget instanceof HTMLElement) { + const { name, domain, tld } = currentTarget.dataset; + if (name && domain && tld) { + const mailto = `mailto:${name}@${domain}.${tld}`; + window.open(mailto, '_blank'); + } + } + } + + function setEmailLink() { + const links = document.querySelectorAll('[data-email-link]'); + + links.forEach((link) => { + link.addEventListener('click', handleEmailClick); + }); + } + setActiveLink(); + setUpLink(); + setEmailLink();