diff options
Diffstat (limited to 'extension/react-app/src/hooks')
| -rw-r--r-- | extension/react-app/src/hooks/CustomPostHogProvider.tsx | 34 | 
1 files changed, 34 insertions, 0 deletions
| diff --git a/extension/react-app/src/hooks/CustomPostHogProvider.tsx b/extension/react-app/src/hooks/CustomPostHogProvider.tsx new file mode 100644 index 00000000..cc6de4a2 --- /dev/null +++ b/extension/react-app/src/hooks/CustomPostHogProvider.tsx @@ -0,0 +1,34 @@ +import posthog from "posthog-js"; +import { PostHogProvider } from "posthog-js/react"; +import { PropsWithChildren, useEffect } from "react"; +import { RootStore } from "../redux/store"; +import { useSelector } from "react-redux"; +import React from "react"; + +const CustomPostHogProvider = ({ children }: PropsWithChildren) => { +  const allowAnonymousTelemetry = useSelector( +    (store: RootStore) => store?.serverState?.config?.allow_anonymous_telemetry +  ); + +  const [client, setClient] = React.useState<any>(undefined); + +  useEffect(() => { +    if (allowAnonymousTelemetry) { +      posthog.init("phc_JS6XFROuNbhJtVCEdTSYk6gl5ArRrTNMpCcguAXlSPs", { +        api_host: "https://app.posthog.com", +        disable_session_recording: true, +      }); +      setClient(client); +    } else { +      setClient(undefined); +    } +  }, [allowAnonymousTelemetry]); + +  return allowAnonymousTelemetry ? ( +    <PostHogProvider client={client}>{children}</PostHogProvider> +  ) : ( +    <>{children}</> +  ); +}; + +export default CustomPostHogProvider; | 
