PageSourceSearch

https://utobo.ai/assets/ConfirmSubscription-VX3lYBss.js

js utobo.ai collected 2026-10-05 14:50:32 UTC 2,945 bytes, 1 lines download raw bytes

1import{j as e}from"./query-JLIzAk7-.js";import{h as l,r as a,L as s}from"./vendor-D0N8-Dov.js";import{u as c}from"./usePageMeta-De0p4Xit.js";import{Q as x,ad as d,L as u}from"./index-DwC4unMT.js";import{P as f}from"./PlatformLayout-Db9LYags.js";import{C as p}from"./circle-check-big-BVDhgvgJ.js";import{C as h}from"./circle-x-DP-ww_e2.js";import"./supabase-MEHSyf2E.js";import"./motion-BXpE5V9u.js";import"./utobo-logo-JTs7vTJO.js";import"./phone-CjwzdUl8.js";import"./map-pin-C7IK_Ti5.js";import"./dialog-DuY4lV8h.js";function F(){c("Confirm your subscription — utobo","Confirm your utobo newsletter subscription."),x();const[n]=l(),t=n.get("token")??"",[r,i]=a.useState("loading");return a.useEffect(()=>{let o=!0;if(!t){i("error");return}return d(t).then(({ok:m})=>{o&&i(m?"success":"error")}),()=>{o=!1}},[t]),e.jsx(f,{children:e.jsx("div",{className:"flex min-h-[70vh] items-center justify-center px-4",children:e.jsxs("div",{className:"text-center max-w-lg",children:[r==="loading"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex justify-center mb-6",children:e.jsx(u,{className:"h-12 w-12 text-primary animate-spin"})}),e.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-2",children:"Confirming your subscription…"}),e.jsx("p",{className:"text-gray-500",children:"Just a moment."})]}),r==="success"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex justify-center mb-6",children:e.jsx(p,{className:"h-16 w-16 text-primary"})}),e.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-4",children:"🎉 You're in!"}),e.jsx("p",{className:"text-lg text-gray-500 mb-8",children:"Thanks for confirming. You'll now get product updates, tips, and company news from utobo — no spam, unsubscribe anytime."}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[e.jsx(s,{to:"/email",className:"inline-flex items-center justify-center rounded-full bg-primary px-7 py-3 text-sm font-semibold text-white hover:bg-primary/90 transition-colors",children:"Go to utobo home"}),e.jsx(s,{to:"/blog",className:"inline-flex items-center justify-center rounded-full border border-gray-300 px-7 py-3 text-sm font-semibold text-gray-700 hover:border-primary hover:text-primary transition-colors",children:"Read the blog"})]})]}),r==="error"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex justify-center mb-6",children:e.jsx(h,{className:"h-16 w-16 text-gray-400"})}),e.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-4",children:"Hmm, that link didn't work"}),e.jsx("p",{className:"text-lg text-gray-500 mb-8",children:"It may have expired or already been used. Just subscribe again and we'll send you a fresh confirmation link."}),e.jsx(s,{to:"/email",className:"inline-flex items-center justify-center rounded-full bg-primary px-7 py-3 text-sm font-semibold text-white hover:bg-primary/90 transition-colors",children:"Back to utobo home"})]})]})})})}export{F 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.