00a3c8ca2b
* Change to using arrow functions Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Matheus <matheus_benini@hotmail.com> * Add lint rule --------- Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Matheus <matheus_benini@hotmail.com> Co-authored-by: Charles Bochet <charles@twenty.com>
33 lines
775 B
TypeScript
33 lines
775 B
TypeScript
import { useCallback } from 'react';
|
|
import { useRecoilState } from 'recoil';
|
|
|
|
import { telemetryState } from '@/client-config/states/telemetryState';
|
|
import { useCreateEventMutation } from '~/generated/graphql';
|
|
|
|
interface EventLocation {
|
|
pathname: string;
|
|
}
|
|
|
|
export interface EventData {
|
|
location: EventLocation;
|
|
}
|
|
|
|
export const useEventTracker = () => {
|
|
const [telemetry] = useRecoilState(telemetryState);
|
|
const [createEventMutation] = useCreateEventMutation();
|
|
|
|
return useCallback(
|
|
(eventType: string, eventData: EventData) => {
|
|
if (telemetry.enabled) {
|
|
createEventMutation({
|
|
variables: {
|
|
type: eventType,
|
|
data: eventData,
|
|
},
|
|
});
|
|
}
|
|
},
|
|
[createEventMutation, telemetry],
|
|
);
|
|
};
|