48ea61cdcc
- Product documentation in docs/products/ - Updated MEMORY.md with product info - quiXzoom Auth Core as AAMOS Identity product
3 lines
2.6 KiB
JavaScript
3 lines
2.6 KiB
JavaScript
import{u as g,aQ as f,r as c,j as e,y as m,z as x,I as j,v as h,L as N,w,ao as C,E as b}from"./index-CZD3_4lD.js";import{Q as v}from"./qr-code-J7tfaoiH.js";import{C as k}from"./circle-check-60AjePHB.js";import{C as y}from"./circle-alert-DFiBooaQ.js";function _(){var d,u;g();const[p]=f(),[t,l]=c.useState(p.get("code")??""),[n,o]=c.useState(!1),[a,r]=c.useState(null),i=async()=>{if(!t.trim()){w.error("Ange kupongkod");return}o(!0),r(null);try{const s=await C(`/vouchers?code=${t.trim().toLowerCase()}`);if(!s){r({success:!1,error:"Kupong hittades inte"});return}if(s.status==="redeemed"){r({success:!1,error:"Kupongen är redan inlöst"});return}if(s.status==="expired"||new Date(s.expires_at)<new Date){r({success:!1,error:"Kupongen har gått ut"});return}await b(`/vouchers/${s.id}`,{status:"redeemed",redeemed_at:new Date().toISOString()}),r({success:!0,voucher:{title:s.title,brand:s.orderer_brand??"",user_id:s.user_id}})}catch(s){r({success:!1,error:s.message})}finally{o(!1)}};return e.jsx("div",{className:"min-h-screen bg-background flex items-center justify-center p-4",children:e.jsxs("div",{className:"w-full max-w-sm space-y-4",children:[e.jsxs("div",{className:"text-center",children:[e.jsx(v,{className:"w-12 h-12 text-primary mx-auto mb-2"}),e.jsx("h1",{className:"text-2xl font-bold",children:"Lös in kupong"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"Ange kupongkoden eller scanna QR"})]}),!a&&e.jsx(m,{children:e.jsxs(x,{className:"pt-6 space-y-4",children:[e.jsx(j,{value:t,onChange:s=>l(s.target.value),placeholder:"Kupongkod (t.ex. a3f2b9c1d4e5)",className:"font-mono",onKeyDown:s=>s.key==="Enter"&&i()}),e.jsxs(h,{onClick:i,disabled:n,className:"w-full",children:[n?e.jsx(N,{className:"w-4 h-4 mr-2 animate-spin"}):null,n?"Verifierar...":"Lös in"]})]})}),a&&e.jsx(m,{className:a.success?"border-green-500/50 bg-green-500/10":"border-red-500/50 bg-red-500/10",children:e.jsxs(x,{className:"pt-6 text-center space-y-3",children:[a.success?e.jsx(k,{className:"w-16 h-16 text-green-500 mx-auto"}):e.jsx(y,{className:"w-12 h-12 text-red-500 mx-auto"}),e.jsxs("div",{children:[e.jsx("h2",{className:"font-semibold text-lg",children:a.success?"Inlöst!":"Fel"}),a.success?e.jsxs("p",{className:"text-sm text-muted-foreground",children:[(d=a.voucher)==null?void 0:d.title," — ",(u=a.voucher)==null?void 0:u.brand]}):e.jsx("p",{className:"text-sm text-red-600",children:a.error})]}),e.jsx(h,{onClick:()=>{r(null),l("")},variant:"outline",className:"w-full",children:a.success?"Nästa kupong":"Försök igen"})]})})]})})}export{_ as default};
|
|
//# sourceMappingURL=RedeemVoucher-BpkWcNI_.js.map
|