import { TrackEnum } from '@gitroom/nestjs-libraries/user/track.enum'; import { useUser } from '@gitroom/frontend/components/layout/user.context'; import { useFetch } from '@gitroom/helpers/utils/custom.fetch'; import { useCallback } from 'react'; import { useVariables } from '@gitroom/react/helpers/variable.context'; export const useTrack = () => { const user = useUser(); const fetch = useFetch(); const {facebookPixel} = useVariables(); return useCallback( async (track: TrackEnum, additional?: Record) => { if (!facebookPixel) { return; } try { if (window.fbq) { // @ts-ignore window.fbq('track', TrackEnum[track], additional); } await fetch(user ? `/user/t` : `/public/t`, { method: 'POST', credentials: 'include', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ tt: track, ...(additional ? { additional } : {}), }), }); } catch (e) { console.log(e); } }, [user] ); };