From 9e5ee476c08e38ad9421cca54710efd31e80c3f0 Mon Sep 17 00:00:00 2001 From: Paradoxe Ngwasi Date: Thu, 26 Sep 2024 09:30:59 +0000 Subject: [PATCH] Optimize Jitsu config creation with useMemo hook --- apps/web/lib/settings/JitsuRoot.tsx | 53 +++++++++++++++-------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/apps/web/lib/settings/JitsuRoot.tsx b/apps/web/lib/settings/JitsuRoot.tsx index 4d6782a44..201d2a4a5 100644 --- a/apps/web/lib/settings/JitsuRoot.tsx +++ b/apps/web/lib/settings/JitsuRoot.tsx @@ -2,7 +2,7 @@ import type { JitsuOptions } from '@jitsu/jitsu-react/dist/useJitsu'; import { JitsuProvider } from '@jitsu/jitsu-react'; import { setNextPublicEnv } from '@app/env'; -import React from 'react'; +import React, { useMemo } from 'react'; import { JitsuAnalytics } from 'lib/components/services/jitsu-analytics'; type MyAppProps = { @@ -17,33 +17,34 @@ type MyAppProps = { export function JitsuRoot({ pageProps, children }: MyAppProps) { pageProps?.envs && setNextPublicEnv(pageProps?.envs); - const jitsuConf = pageProps?.jitsuConf || { - host: process.env.NEXT_PUBLIC_JITSU_BROWSER_URL, - writeKey: process.env.NEXT_PUBLIC_JITSU_BROWSER_WRITE_KEY, - debug: false, - cookieDomain: process.env.NEXT_PUBLIC_JITSU_COOKIE_DOMAIN, - echoEvents: false - }; - const isJitsuEnvs: boolean = !!jitsuConf.host && !!jitsuConf.writeKey; - console.log(`Jitsu Enabled: ${isJitsuEnvs}`); - console.log(`Jitsu Configuration: ${JSON.stringify(jitsuConf)}`); + + const options = useMemo(() => { + const jitsuConf = pageProps?.jitsuConf || { + host: process.env.NEXT_PUBLIC_JITSU_BROWSER_URL, + writeKey: process.env.NEXT_PUBLIC_JITSU_BROWSER_WRITE_KEY, + debug: false, + cookieDomain: process.env.NEXT_PUBLIC_JITSU_COOKIE_DOMAIN, + echoEvents: false + }; + + const isJitsuEnvs: boolean = !!jitsuConf.host && !!jitsuConf.writeKey; + + console.log(`Jitsu Enabled: ${isJitsuEnvs}`); + console.log(`Jitsu Configuration: ${JSON.stringify(jitsuConf)}`); + + return isJitsuEnvs + ? { + host: jitsuConf.host ?? '', + writeKey: jitsuConf.writeKey ?? undefined, + debug: jitsuConf.debug, + cookieDomain: jitsuConf.cookieDomain ?? undefined, + echoEvents: jitsuConf.echoEvents + } + : { disabled: true }; + }, [pageProps?.jitsuConf]); return ( - + {children}