aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Settings/SettingCheckboxToggle.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/Settings/SettingCheckboxToggle.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/Settings/SettingCheckboxToggle.svelte')
-rw-r--r--src/lib/Settings/SettingCheckboxToggle.svelte13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/lib/Settings/SettingCheckboxToggle.svelte b/src/lib/Settings/SettingCheckboxToggle.svelte
index 1f58520d..e45077f7 100644
--- a/src/lib/Settings/SettingCheckboxToggle.svelte
+++ b/src/lib/Settings/SettingCheckboxToggle.svelte
@@ -2,6 +2,7 @@
import Spacer from "$lib/Layout/Spacer.svelte";
import tooltip from "$lib/Tooltip/tooltip";
import settings, { type Settings } from "$stores/settings";
+import { track } from "$lib/analytics";
type BooleanSettingsKeys<T> = {
[K in keyof T]: T[K] extends boolean ? K : never;
@@ -52,13 +53,21 @@ const check = (
const checked = (e.target as HTMLInputElement).checked;
if (setting) {
- settings.setKey(setting, invert ? !checked : checked);
+ const value = invert ? !checked : checked;
+
+ settings.setKey(setting, value);
+ track("Toggle Setting", { key: setting, value });
onChange();
}
};
const flip = () => {
- if (setting) $settings[setting] = !$settings[setting];
+ if (setting) {
+ const value = !$settings[setting];
+
+ $settings[setting] = value;
+ track("Toggle Setting", { key: setting, value });
+ }
};
</script>