feat(analytics): add clickhouse (#11174)

This commit is contained in:
Antoine Moreaux
2025-04-16 18:33:10 +02:00
committed by GitHub
parent b6901a49bf
commit 587281a541
66 changed files with 1858 additions and 244 deletions

View File

@ -1,14 +1,11 @@
import { useCallback } from 'react';
import { v4 } from 'uuid';
import { useTrackMutation } from '~/generated/graphql';
export interface EventData {
pathname: string;
userAgent: string;
timeZone: string;
locale: string;
href: string;
referrer: string;
}
import {
AnalyticsType,
MutationTrackAnalyticsArgs,
useTrackAnalyticsMutation,
} from '~/generated/graphql';
export const ANALYTICS_COOKIE_NAME = 'analyticsCookie';
export const getSessionId = (): string => {
const cookie: { [key: string]: string } = {};
@ -28,16 +25,22 @@ export const setSessionId = (domain?: string): void => {
};
export const useEventTracker = () => {
const [createEventMutation] = useTrackMutation();
const [createEventMutation] = useTrackAnalyticsMutation();
return useCallback(
(eventAction: string, eventPayload: EventData) => {
(
type: AnalyticsType,
payload: Omit<MutationTrackAnalyticsArgs, 'type'>,
) => {
createEventMutation({
variables: {
action: eventAction,
payload: {
sessionId: getSessionId(),
...eventPayload,
type,
...payload,
properties: {
...payload.properties,
...(type === AnalyticsType['PAGEVIEW']
? { sessionId: getSessionId() }
: {}),
},
},
});