From c58834309b0359e3a6c10e489f74af65c3ef438e Mon Sep 17 00:00:00 2001 From: Maycon Santos Date: Sun, 2 Oct 2022 18:01:06 +0500 Subject: [PATCH] Add hotjar integration (#89) hotjar is only enabled if NETBIRD_HOTJAR_TRACK_ID is passed --- docker/init_react_envs.sh | 3 ++- package-lock.json | 11 +++++++++++ package.json | 1 + src/App.tsx | 9 ++++++++- src/config.json | 3 ++- src/config.ts | 1 + 6 files changed, 25 insertions(+), 3 deletions(-) diff --git a/docker/init_react_envs.sh b/docker/init_react_envs.sh index 72fa72a..bbcbc45 100644 --- a/docker/init_react_envs.sh +++ b/docker/init_react_envs.sh @@ -49,6 +49,7 @@ export AUTH_SUPPORTED_SCOPES=${AUTH_SUPPORTED_SCOPES:-openid profile email api o export NETBIRD_MGMT_API_ENDPOINT=$(echo $NETBIRD_MGMT_API_ENDPOINT | sed -E 's/(:80|:443)$//') export NETBIRD_MGMT_GRPC_API_ENDPOINT=${NETBIRD_MGMT_GRPC_API_ENDPOINT} +export NETBIRD_HOTJAR_TRACK_ID=${NETBIRD_HOTJAR_TRACK_ID} REPO="https://github.com/netbirdio/netbird/" # this command will fetch the latest release e.g. v0.6.3 @@ -56,7 +57,7 @@ export NETBIRD_LATEST_VERSION=$(basename $(curl -fs -o/dev/null -w %{redirect_ur echo "NetBird latest version: ${NETBIRD_LATEST_VERSION}" # replace ENVs in the config -ENV_STR="\$\$USE_AUTH0 \$\$AUTH_AUDIENCE \$\$AUTH_AUTHORITY \$\$AUTH_CLIENT_ID \$\$AUTH_SUPPORTED_SCOPES \$\$NETBIRD_MGMT_API_ENDPOINT \$\$NETBIRD_MGMT_GRPC_API_ENDPOINT \$\$NETBIRD_LATEST_VERSION" +ENV_STR="\$\$USE_AUTH0 \$\$AUTH_AUDIENCE \$\$AUTH_AUTHORITY \$\$AUTH_CLIENT_ID \$\$AUTH_SUPPORTED_SCOPES \$\$NETBIRD_MGMT_API_ENDPOINT \$\$NETBIRD_MGMT_GRPC_API_ENDPOINT \$\$NETBIRD_LATEST_VERSION \$\$NETBIRD_HOTJAR_TRACK_ID" MAIN_JS=$(find /usr/share/nginx/html/static/js/main.*js) OIDC_TRUSTED_DOMAINS="/usr/share/nginx/html/OidcTrustedDomains.js" cp "$MAIN_JS" "$MAIN_JS".copy diff --git a/package-lock.json b/package-lock.json index 4f2854e..3ad0bfb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,6 +37,7 @@ "rc-overflow": "^1.2.8", "react": "^18.2.0", "react-dom": "^18.1.0", + "react-hotjar": "^5.1.0", "react-redux": "^8.0.2", "react-router-dom": "^5.3.3", "react-scripts": "^5.0.1", @@ -13525,6 +13526,11 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "node_modules/react-hotjar": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-hotjar/-/react-hotjar-5.1.0.tgz", + "integrity": "sha512-H0MORa+uIY1pgLoVOVJRT73UtfwatNtzbAsgvCK6P/97Hc56pPJEcfLEMUHLl9NCRaHtmeP2n7Nad8cZyCtH3A==" + }, "node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", @@ -26299,6 +26305,11 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "react-hotjar": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-hotjar/-/react-hotjar-5.1.0.tgz", + "integrity": "sha512-H0MORa+uIY1pgLoVOVJRT73UtfwatNtzbAsgvCK6P/97Hc56pPJEcfLEMUHLl9NCRaHtmeP2n7Nad8cZyCtH3A==" + }, "react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", diff --git a/package.json b/package.json index 7250a36..9cb04a0 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "rc-overflow": "^1.2.8", "react": "^18.2.0", "react-dom": "^18.1.0", + "react-hotjar": "^5.1.0", "react-redux": "^8.0.2", "react-router-dom": "^5.3.3", "react-scripts": "^5.0.1", diff --git a/src/App.tsx b/src/App.tsx index b7eb3a6..bb657f5 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -14,11 +14,18 @@ import {store} from "./store"; import { Col, Layout, Row} from 'antd'; import {Container} from "./components/Container"; import {withOidcSecure} from '@axa-fr/react-oidc'; - +import { hotjar } from 'react-hotjar'; +import {getConfig} from "./config"; const {Header, Content} = Layout; + function App() { + const { hotjarTrackID } = getConfig(); + if (hotjarTrackID) { + hotjar.initialize(hotjarTrackID, 6); + } + const [isOpen, setIsOpen] = useState(false); useEffect(() => { diff --git a/src/config.json b/src/config.json index 7f190ac..98ebc84 100644 --- a/src/config.json +++ b/src/config.json @@ -7,5 +7,6 @@ "apiOrigin": "$NETBIRD_MGMT_API_ENDPOINT", "grpcApiOrigin": "$NETBIRD_MGMT_GRPC_API_ENDPOINT", - "latestVersion": "$NETBIRD_LATEST_VERSION" + "latestVersion": "$NETBIRD_LATEST_VERSION", + "hotjarTrackID": "$NETBIRD_HOTJAR_TRACK_ID" } \ No newline at end of file diff --git a/src/config.ts b/src/config.ts index e74e16c..2de5bea 100644 --- a/src/config.ts +++ b/src/config.ts @@ -18,5 +18,6 @@ export function getConfig() { grpcApiOrigin: configJson.grpcApiOrigin, latestVersion: configJson.latestVersion, audience: configJson.authAudience, + hotjarTrackID: configJson.hotjarTrackID, }; }