Add Telemetry (#466)
* Telemetry v1 * Add package-lock.json to gitignore
This commit is contained in:
32
front/src/modules/analytics/hooks/useEventTracker.ts
Normal file
32
front/src/modules/analytics/hooks/useEventTracker.ts
Normal file
@ -0,0 +1,32 @@
|
||||
import { useCallback } from 'react';
|
||||
|
||||
import { useCreateEventMutation } from '~/generated/graphql';
|
||||
|
||||
import { useIsTelemetryEnabled } from './useIsTelemetryEnabled';
|
||||
|
||||
interface EventLocation {
|
||||
pathname: string;
|
||||
}
|
||||
|
||||
export interface EventData {
|
||||
location: EventLocation;
|
||||
}
|
||||
|
||||
export function useEventTracker() {
|
||||
const telemetryEnabled = useIsTelemetryEnabled();
|
||||
const [createEventMutation] = useCreateEventMutation();
|
||||
|
||||
return useCallback(
|
||||
(eventType: string, eventData: EventData) => {
|
||||
if (telemetryEnabled) {
|
||||
createEventMutation({
|
||||
variables: {
|
||||
type: eventType,
|
||||
data: eventData,
|
||||
},
|
||||
});
|
||||
}
|
||||
},
|
||||
[createEventMutation, telemetryEnabled],
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user