From 4b274bc72758e1fd79177fd1c145e28ba4aa6057 Mon Sep 17 00:00:00 2001 From: Bastien DUMONT <bdumont@grandlyon.com> Date: Mon, 9 May 2022 14:13:47 +0200 Subject: [PATCH] cozyData --- src/targets/browser/index.tsx | 3 ++- src/types/cozy-data.d.ts | 21 +++++++++++++++++++++ src/utils/matomoTracker.ts | 7 ++++--- 3 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 src/types/cozy-data.d.ts diff --git a/src/targets/browser/index.tsx b/src/targets/browser/index.tsx index 93fcbc519..836a1b589 100644 --- a/src/targets/browser/index.tsx +++ b/src/targets/browser/index.tsx @@ -21,12 +21,13 @@ import schema from 'doctypes' import { createBrowserHistory, History } from 'history' import { HashRouter } from 'react-router-dom' import MatomoTracker from 'utils/matomoTracker' +import { CozyData } from 'types/cozy-data' const setupApp = memoize(() => { const history: History = createBrowserHistory() // eslint-disable-next-line @typescript-eslint/no-explicit-any const root: any = document.querySelector('[role=application]') - const data = JSON.parse(root.dataset.cozy) + const data: CozyData = JSON.parse(root.dataset.cozy) const protocol = window.location.protocol const cozyUrl = `${protocol}//${data.domain}` diff --git a/src/types/cozy-data.d.ts b/src/types/cozy-data.d.ts new file mode 100644 index 000000000..58550d08f --- /dev/null +++ b/src/types/cozy-data.d.ts @@ -0,0 +1,21 @@ +export type CozyData = { + app: { + editor: string + icon: string + name: string + prefix: string + slug: string + } + capabilities: { + file_versioning: boolean + flat_subdomains: boolean + can_auth_with_password: boolean + can_auth_with_oidc: boolean + } + domain: string + flags: any + locale: string + subdomain: string + token: string + tracking: boolean +} diff --git a/src/utils/matomoTracker.ts b/src/utils/matomoTracker.ts index 2e43776d5..184f51f37 100644 --- a/src/utils/matomoTracker.ts +++ b/src/utils/matomoTracker.ts @@ -1,6 +1,6 @@ import { History, Location, UnregisterCallback } from 'history' -import { readCozyDataFromDOM } from 'cozy-ui/transpiled/react/helpers/appDataset' import hash from 'object-hash' +import { CozyData } from 'types/cozy-data' interface InitSettings { cozyUrl: string @@ -72,8 +72,9 @@ export default class MatomoTracker { let cozyDomain let userId const root: any = document.querySelector('[role=application]') - if (root && root.dataset) { - cozyDomain = readCozyDataFromDOM('cozyDomain') + const data: CozyData = JSON.parse(root.dataset.cozy) + if (root && data) { + cozyDomain = data.domain } if (cozyDomain) { userId = cozyDomain -- GitLab