aboutsummaryrefslogtreecommitdiff
path: root/src/lib/LandingHero.svelte
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-05-29 23:05:37 +0000
committerFuwn <[email protected]>2026-05-29 23:05:37 +0000
commitbe151fd6f7e7860cc60bee67bab815c155e86fcd (patch)
tree47dcfe80450479efe722f4b59c58f934d07f3618 /src/lib/LandingHero.svelte
parentfeat(lists): animate list-title count with NumberTicker (diff)
downloaddue.moe-be151fd6f7e7860cc60bee67bab815c155e86fcd.tar.xz
due.moe-be151fd6f7e7860cc60bee67bab815c155e86fcd.zip
feat(analytics): track umami events across core actions
Add a guarded track() wrapper (src/lib/analytics.ts) so programmatic events no-op instead of throwing when umami is absent (localhost), lazily loaded, or ad-blocked. Instrument the core loop (progress increment, roulette, list filter, force refresh), the auth funnel (log in/out, command palette), settings toggles/selects at the wrapper level, sync/debug/feed actions, and tool/sharing actions.
Diffstat (limited to 'src/lib/LandingHero.svelte')
-rw-r--r--src/lib/LandingHero.svelte3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/LandingHero.svelte b/src/lib/LandingHero.svelte
index bec9d1f4..ed019274 100644
--- a/src/lib/LandingHero.svelte
+++ b/src/lib/LandingHero.svelte
@@ -2,6 +2,7 @@
import { env } from "$env/dynamic/public";
import localforage from "localforage";
import lenis from "$stores/lenis";
+import { track } from "$lib/analytics";
let heroSection = $state<HTMLElement>();
@@ -35,6 +36,8 @@ const scrollPastHero = () => {
class="cta"
href={`https://anilist.co/api/v2/oauth/authorize?client_id=${env.PUBLIC_ANILIST_CLIENT_ID}&redirect_uri=${env.PUBLIC_ANILIST_REDIRECT_URI}&response_type=code`}
onclick={async () => {
+ track('Log In', { source: 'landing' });
+
await localforage.setItem(
'redirect',
window.location.origin + window.location.pathname + window.location.search