diff --git a/resources/js/lib/constants.ts b/resources/js/lib/constants.ts new file mode 100644 index 00000000..0f0783f0 --- /dev/null +++ b/resources/js/lib/constants.ts @@ -0,0 +1,2 @@ +export const LEAD_FUNNEL_EVENT_UUID = '9668a06c-dee9-47a8-9bee-eaaa2a3a5915'; + diff --git a/resources/js/lib/track-event.ts b/resources/js/lib/track-event.ts index 13627892..d608fa1c 100644 --- a/resources/js/lib/track-event.ts +++ b/resources/js/lib/track-event.ts @@ -41,7 +41,9 @@ export async function trackEvent( queryParams.append(key, String(value)); } }); - await fetch(`${url}?${queryParams.toString()}`); + await fetch(`${url}?${queryParams.toString()}`, { + keepalive: true, + }); } else { await fetch(url, { method: 'POST', @@ -49,6 +51,7 @@ export async function trackEvent( 'Content-Type': 'application/json', }, body: JSON.stringify(payload), + keepalive: true, }); } } diff --git a/resources/js/pages/welcome.tsx b/resources/js/pages/welcome.tsx index 6a411464..cb22aee0 100644 --- a/resources/js/pages/welcome.tsx +++ b/resources/js/pages/welcome.tsx @@ -20,6 +20,7 @@ import { } from 'lucide-react'; import { useEffect, useRef } from 'react'; import { trackEvent } from '@/lib/track-event'; +import { LEAD_FUNNEL_EVENT_UUID } from '@/lib/constants'; export default function Welcome({ canRegister = true, @@ -37,7 +38,7 @@ export default function Welcome({ return; } visitTrackedRef.current = true; - trackEvent('9668a06c-dee9-47a8-9bee-eaaa2a3a5915', { + trackEvent(LEAD_FUNNEL_EVENT_UUID, { step: 'Visit', }); }, []); @@ -174,7 +175,7 @@ export default function Welcome({ className="flex sm:items-center justify-center flex-col gap-2 sm:flex-row" onSuccess={async () => { const emailValue = emailInputRef.current?.value || ''; - await trackEvent('9668a06c-dee9-47a8-9bee-eaaa2a3a5915', { + await trackEvent(LEAD_FUNNEL_EVENT_UUID, { step: 'Lead Created', email: emailValue, });