1import{j as a}from"./vendor-motion-BbExknJL.js";import{j as n,u as d,r as m}from"./vendor-react-JrmCn3bB.js";import{w as r}from"./index-ChZ-G7s9.js";import"./vendor-ui-DnUDR9QE.js";import"./vendor-charts-Bmd7Bphi.js";import"./vendor-query-BOAoD1gU.js";import"./vendor-supabase-BX9gqKp5.js";function x(){const{slug:t}=n(),s=d();return m.useEffect(()=>{if(!t)return;(async()=>{const{data:e}=await r.from("invitation_codes").select("id, ambassador_id, coupon_template_id").eq("slug",t).eq("is_active",!0).maybeSingle();if(!e){s("/",{replace:!0});return}localStorage.setItem("ref_ambassador",JSON.stringify({ambassador_id:e.ambassador_id,invitation_code_id:e.id,coupon_template_id:e.coupon_template_id,slug:t,timestamp:Date.now()})),sessionStorage.setItem("ref_session",JSON.stringify({ambassador_id:e.ambassador_id,invitation_code_id:e.id,slug:t}));const o=new Date(Date.now()+60*24*60*60*1e3).toUTCString();document.cookie=`ref_code=${t}; expires=${o}; path=/; SameSite=Lax`;const i=crypto.randomUUID();sessionStorage.setItem("ref_session_token",i),await r.from("tracking_sessions").insert({ambassador_id:e.ambassador_id,invitation_code_id:e.id,coupon_template_id:e.coupon_template_id,session_token:i,landing_page:window.location.href,referrer:document.referrer||null,device_type:/Mobi/i.test(navigator.userAgent)?"mobile":"desktop",browser:navigator.userAgent.
1split(" ").pop()||"unknown"}),s("/",{replace:!0})})()},[t,s]),a.jsx("div",{className:"min-h-screen flex items-center justify-center bg-background",children:a.jsxs("div",{className:"text-center",children:[a.jsx("div",{className:"h-8 w-8 rounded-full border-2 border-primary border-t-transparent animate-spin mx-auto mb-3"}),a.jsx("p",{className:"text-muted-foreground",children:"Redirigiendo..."})]})})}export{x as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.