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])