PageSourceSearch

https://boombam.app/assets/forgot-password-D8uDmlAE.js

js boombam.app collected 2026-10-04 13:32:57 UTC 3,031 bytes, 1 lines download raw bytes

1import{r as l,_ as x,a6 as u,j as e,L as c,bk as h,bl as p,C as g,b as j,d as f,o as y,e as b,ab as w,bm as N,B as d,bn as v,k as C,m as S,a7 as k}from"./index-CuSEeJFb.js";import{M as E}from"./mail-Dl1RGATy.js";function P(){const[t,r]=l.useState(""),[i,n]=l.useState(!1),{toast:o}=x(),a=u({mutationFn:async s=>k("/api/auth/forgot-password",{method:"POST",body:JSON.stringify(s)}),onSuccess:()=>{n(!0),o({title:"Email sent!",description:"Check your email for password reset instructions."})},onError:s=>{o({title:"Error",description:s.message||"Failed to send reset email",variant:"destructive"})}}),m=s=>{s.preventDefault(),a.mutate({email:t})};return e.jsx("div",{className:"min-h-screen bg-gradient-to-b from-orange-50 to-white flex items-center justify-center p-4",children:e.jsxs("div",{className:"w-full max-w-md",children:[e.jsxs("div",{className:"text-center mb-8",children:[e.jsx(c,{href:"/login",children:e.jsxs("a",{className:"inline-flex items-center gap-2 text-gray-600 hover:text-orange-600 transition-colors mb-4",children:[e.jsx(h,{className:"h-4 w-4"}),"Back to login"]})}),e.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4",children:[e.jsx("img",{src:p,alt:"Boom Bam",className:"h-12 w-12 object-contain"}),e.jsx("span",{className:"text-3xl font-bold text-orange-600",children:"Boom Bam"})]}),e.jsx("p",{className:"text-gray-600",children:"Reset your password"})]}),e.jsxs(g,{children:[e.jsxs(j,{children:[e.jsx(f,{className:"text-2xl",children:"Forgot your password?"}),e.jsx(y,{children:i?"We've sent you an email with reset instructions.":"Enter your email and we'll send you a link to reset your password."})]}),e.jsx(b,{children:i?e.jsxs("div",{className:"text-center space-y-4",children:[e.jsx("div",{className:"w-16 h-16 bg-green-100 rounded-full flex items-center justify-center mx-auto",children:e.jsx(E,{className:"h-8 w-8 text-green-600"})}),e.jsx("p",{className:"text-gray-600",children:"Check your email for a link to reset your password. If it doesn't appear within a few minutes, check your spam folder."}),e.jsx(d,{onClick:()=>{n(!1),r("")},variant:"outline",className:"w-full",children:"Send another email"})]}):e.jsxs("form",{onSubmit:m,className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(w,{htmlFor:"email",children:"Email"}),e.jsx(N,{id:"email",type:"email",placeholder:"[email protected]",value:t,onChange:s=>r(s),required:!0,disabled:a.isPending})]}),e.jsx(d,{type:"submit",className:"w-full bg-orange-600 hover:bg-orange-700",disabled:a.isPending,children:a.isPending?"Sending...":"Send Reset Email"})]})}),e.jsx(v,{className:"flex flex-col space-y-2",children:e.jsxs("div",{className:"text-center text-sm text-gray-600",children:["Remember your password?"," ",e.jsx(c,{href:"/login",children:e.jsx("a",{className:"text-orange-600 hover:text-orange-700 font-medium",children:"Login"})})]})})]}),e.jsx(C,{className:"mt-4",children:e.jsx(S,{children:"For security reasons, the reset link will expire in 1 hour."})})]})})}export{P 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.