From be151fd6f7e7860cc60bee67bab815c155e86fcd Mon Sep 17 00:00:00 2001 From: Fuwn Date: Fri, 29 May 2026 23:05:37 +0000 Subject: 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. --- src/routes/+layout.svelte | 5 +++++ src/routes/user/[user]/badges/+page.svelte | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'src/routes') diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index b1f9fc87..a35fee29 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -32,6 +32,7 @@ import Message from "$lib/Loading/Message.svelte"; import { requestNotifications } from "$lib/Utility/notifications"; import { database as userDatabase } from "$lib/Database/IDB/user"; import CommandPalette from "$lib/CommandPalette/CommandPalette.svelte"; +import { track } from "$lib/analytics"; import { defaultActions } from "$lib/CommandPalette/actions"; import { authActions } from "$lib/CommandPalette/authActions"; import { syncActions } from "$lib/CommandPalette/syncActions"; @@ -402,6 +403,8 @@ $: { url: '#', preventDefault: true, onClick: async () => { + track('Log Out', { source: 'header' }); + await localforage.removeItem('identity'); await localforage.removeItem('commit'); @@ -424,6 +427,8 @@ $: { class="header-item" 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: 'header' }); + await localforage.setItem( 'redirect', window.location.origin + window.location.pathname + window.location.search diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte index de55b456..77770498 100644 --- a/src/routes/user/[user]/badges/+page.svelte +++ b/src/routes/user/[user]/badges/+page.svelte @@ -861,7 +861,7 @@ const shadowHideBadge = () => { /> - { > {$locale().user.badges.importMode.cancel} - -- cgit v1.2.3