From bb1223df6042e0002a7323f701d5c65d9c282d41 Mon Sep 17 00:00:00 2001 From: Misode Date: Sat, 30 Oct 2021 17:34:54 +0200 Subject: [PATCH] Track generator ID in custom dimension Preparing to add back search parameters to share links --- src/app/Analytics.ts | 6 ++++++ src/app/Utils.ts | 2 +- src/app/pages/Generator.tsx | 10 +++++----- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/app/Analytics.ts b/src/app/Analytics.ts index 1d821c85..b4496dd6 100644 --- a/src/app/Analytics.ts +++ b/src/app/Analytics.ts @@ -6,6 +6,7 @@ export namespace Analytics { const DIM_VERSION = 3 const DIM_LANGUAGE = 4 const DIM_PREVIEW = 5 + const DIM_GENERATOR = 6 function event(category: string, action: string, label?: string) { ga('send', 'event', category, action, label) @@ -40,6 +41,11 @@ export namespace Analytics { event(ID_GENERATOR, 'set-preview', preview) } + export function setGenerator(generator: string) { + dimension(DIM_GENERATOR, generator) + console.log(generator) + } + export function generatorEvent(action: string, label?: string) { event(ID_GENERATOR, action, label) } diff --git a/src/app/Utils.ts b/src/app/Utils.ts index 39c3bd0e..323adbda 100644 --- a/src/app/Utils.ts +++ b/src/app/Utils.ts @@ -54,7 +54,7 @@ export function cleanUrl(url: string) { } export function getGenerator(url: string) { - const trimmedUrl = url.replace(/^\//, '').replace(/\/$/, '') + const trimmedUrl = url.replace(/^\//, '').replace(/\/$/, '').replace(/\?.*/, '') return config.generators.find(g => g.url === trimmedUrl) } diff --git a/src/app/pages/Generator.tsx b/src/app/pages/Generator.tsx index 4c9333fb..5da863b5 100644 --- a/src/app/pages/Generator.tsx +++ b/src/app/pages/Generator.tsx @@ -31,10 +31,6 @@ export function Generator({ lang, changeTitle, version, changeVersion }: Generat return
} - useEffect(() => { - setError(null) - }, [gen.id, version]) - const allowedVersions = config.versions .filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion)) .map(v => v.id as VersionId) @@ -48,11 +44,15 @@ export function Generator({ lang, changeTitle, version, changeVersion }: Generat const [model, setModel] = useState(null) const [blockStates, setBlockStates] = useState(null) useEffect(() => { + setError(null) setModel(null) getBlockStates(version) .then(b => setBlockStates(b)) getModel(version, gen.id) - .then(m => setModel(m)) + .then(m => { + Analytics.setGenerator(gen.id) + setModel(m) + }) .catch(e => { console.error(e); setError(message(e)) }) }, [version, gen.id])