1"use strict";(self.webpackChunkfrontend=self.webpackChunkfrontend||[]).push([[8328],{1089(e,t,n){n.d(t,{$C:()=>l,PE:()=>m,Sj:()=>h,Yq:()=>o,cn:()=>a,dc:()=>g,lW:()=>u,r6:()=>c,sg:()=>f,xv:()=>d});var r=n(89379),i=n(58387),s=n(89359);function a(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,s.QP)((0,i.$)(t))}function o(e,t){if(!e)return"";return new Date(e).toLocaleDateString("en-US",(0,r.A)({year:"numeric",month:"short",day:"numeric"},t?{timeZone:t}:{}))}function c(e,t){if(!e)return"";return new Date(e).toLocaleDateString("en-US",(0,r.A)({year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"},t?{timeZone:t}:{}))}function l(){return Math.random().toString(36).substring(2,9)}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50;return e?e.length>t?e.substring(0,t)+"...":e:""}async function u(e){try{return await navigator.clipboard.writeText(e),!0}catch(t){return console.error("Failed to copy:",t),!1}}function m(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/json";const r=new Blob(["string"===typeof e?e:JSON.stringify(e,null,2)],{type:n}),i=URL.createObjectURL(r),s=document.createElement("a");s.href=i,s.download=t,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(i)}function f(e,t){let n;return function(){for(var r=arguments.length,i=new Array(r),s=0;s<r;s++)i[s]=arguments[s];clearTimeout(n),n=setTimeout(()=>{clearTimeout(n),e(...i)},t)}}function h(e,t){return"".concat(window.location.origin,"/f/").concat(t||e)}function g(e,t){const n=t||e;return'<div id="ff-'.concat(n,'"></div>\n<script src="').concat(window.location.origin,'/embed.js" data-form-id="').concat(n,'"><\/script>')}},13390(e,t,n){n.d(t,{$:()=>m,r:()=>u});var r=n(89379),i=n(53986),s=n(65043),a=n(16851),o=n(10917),c=n(1089),l=n(70579);const d=["className","variant","size","asChild"],u=(0,o.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),m=s.forwardRef((e,t)=>{let{className:n,variant:s,size:o,asChild:m=!1}=e,f=(0,i.A)(e,d);const h=m?a.DX:"button";return(0,l.jsx)(h,(0,r.A)({className:(0,c.cn)(u({variant:s,size:o,className:n})),ref:t},f))});m.displayName="Button"},58328(e,t,n){n.r(t),n.d(t,{default:()=>g});var r=n(65043),i=n(45685),s=n(35016),a=n(4980),o=n(13390),c=n(82054),l=n(76245),d=n(22024),u=n(35327),m=n(78838),f=n(64702),h=n(70579);const g=()=>{const e=(0,i.Zp)(),[t]=(0,i.ok)(),{loginWithToken:n}=(0,s.As)(),[g,x]=(0,r.useState)("verifying"),[v,p]=(0,r.useState)(""),[b,y]=(0,r.useState)(""),w=(0,r.useRef)(!1),j=t.get("token"),N=(0,r.useCallback)(()=>{const e=Date.now()+1500,t=["#FF6B6B","#22c55e","#3b82f6","#f59e0b","#a855f7"];!function n(){(0,m.A)({particleCount:3,angle:60,spread:55,origin:{x:0},colors:t}),(0,m.A)({particleCount:3,angle:120,spread:55,origin:{x:1},colors:t}),Date.now()<e&&requestAnimationFrame(n)}()},[]);(0,r.useEffect)(()=>{w.current||(j?(w.current=!0,A()):(x("error"),p("Invalid verification link"),y("No verification token found in the URL.")))},[j]);const A=async()=>{try{const t=await a.ZQ.verifyEmail(j);x("success"),p(t.message||"Email verified successfully!"),N(),setTimeout(()=>{e("/login")},3e3)}catch(r){var t,n;x("error"),p("Verification failed"),y((null===(t=r.response)||void 0===t||null===(n=t.data)||void 0===n?void 0:n.detail)||"The verification link may be invalid or expired.")}};return(0,h.jsx)("div",{className:"min-h-screen bg-zinc-50 flex items-center justify-center py-12 px-4","data-testid":"verify-email-page",children:(0,h.jsxs)("div",{className:"max-w-md w-full text-center",children:["verifying"===g&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(d.A,{className:"w-16 h-16 animate-spin text-[#FF6B6B] mx-auto mb-6"}),(0,h.jsx)("h1",{className:"text-2xl font-bold mb-4",children:"Verifying your email..."}),(0,h.jsx)("p",{className:"text-zinc-500",children:"Please wait while we confirm your email address."})]}),"success"===g&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("div",{className:"w-16 h-16 bg-green-100 rounded-full flex items-center justify-center mx-auto mb-6",children:(0,h.jsx)(c.A,{className:"w-10 h-10 text-green-500"})}),(0,h.jsx)("h1",{className:"text-2xl font-bold mb-4",children:v}),(0,h.jsx)("p",{className:"text-zinc-500 mb-6",children:"Redirecting to login..."}),(0,h.jsx)(f.A,{size:32})]}),"error"===g&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("div",{className:"w-16 h-16 bg-red-100 rounded-full flex items-center justify-center mx-auto mb-6",children:(0,h.jsx)(l.A,{className:"w-10 h-10 text-red-500"})}),(0,h.jsx)("h1",{className:"text-2xl font-bold mb-4",children:v}),(0,h.jsx)("p",{className:"text-zinc-500 mb-6",children:b}),(0,h.jsxs)("div",{className:"space-y-3",children:[(0,h.jsx)(i.N_,{to:"/login",children:(0,h.jsx)(o.$,{className:"w-full",children:"Go to Login"})}),(0,h.jsx)(i.N_,{to:"/signup",children:(0,h.jsxs)(o.$,{variant:"outline",className:"w-full",children:[(0,h.jsx)(u.A,{className:"w-4 h-4 mr-2"}),"Sign Up Again"]})})]})]})]})})}}}]); 2//# sourceMappingURL=8328.e4f6794f.chunk.js.map
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.