PageSourceSearch

https://sendunlimitedemail.com/sue/mod-CeLxuaMn.js

js sendunlimitedemail.com collected 2026-10-05 06:25:25 UTC 3,381 bytes, 1 lines download raw bytes

1import{k as j,e as d,r as l,j as e,B as b,t as f}from"./edge-BOITG1XR.js";import{C as o,a as r,b as c,c as i}from"./mod-DgQ0OFXm.js";import{R as N}from"./mod-RPxq32x0.js";const y=[["path",{d:"m15 11-1 9",key:"5wnq3a"}],["path",{d:"m19 11-4-7",key:"cnml18"}],["path",{d:"M2 11h20",key:"3eubbj"}],["path",{d:"m3.5 11 1.6 7.4a2 2 0 0 0 2 1.6h9.8a2 2 0 0 0 2-1.6l1.7-7.4",key:"yiazzp"}],["path",{d:"M4.5 15.5h15",key:"13mye1"}],["path",{d:"m5 11 4-7",key:"116ra9"}],["path",{d:"m9 11 1 9",key:"1ojof7"}]],C=j("shopping-basket",y),g={getBlogPosts:(s={})=>d.get("/blog-posts",{params:s}).then(t=>t.data),createBlogPost:s=>d.post("/blog-posts",s).then(t=>t.data),updateBlogPost:(s,t)=>d.put(`/blog-posts/${s}`,t).then(n=>n.data),deleteBlogPost:s=>d.delete(`/blog-posts/${s}`).then(t=>t.data),getCampaigns:(s={})=>d.get("/campaigns",{params:s}).then(t=>t.data),getDiscountRules:(s={})=>d.get("/discount-rules",{params:s}).then(t=>t.data),getAbandonedCarts:(s={})=>d.get("/admin/abandoned-carts",{params:s}).then(t=>t.data),getAbandonedCartStats:()=>d.get("/admin/abandoned-carts/stats").then(s=>s.data)},A=()=>{const[s,t]=l.useState(null),[n,p]=l.useState([]),[m,x]=l.useState(!0),h=async()=>{try{x(!0);const[a,u]=await Promise.all([g.getAbandonedCartStats(),g.getAbandonedCarts({recovered:"false"})]);t(a),p(u.data??[])}catch{f.error("Failed to load abandoned cart data")}finally{x(!1)}};return l.useEffect(()=>{h()},[]),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3",children:[e.jsxs("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[e.jsx(C,{className:"w-6 h-6"}),"Abandoned Carts"]}),e.jsxs(b,{variant:"outline",onClick:h,disabled:m,children:[e.jsx(N,{className:"w-4 h-4 mr-2"}),"Refresh"]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[e.jsxs(o,{children:[e.jsx(r,{children:e.jsx(c,{className:"text-sm",children:"Total Abandoned"})}),e.jsx(i,{className:"text-2xl font-bold",children:s?.total_abandoned??0})]}),e.jsxs(o,{children:[e.jsx(r,{children:e.jsx(c,{className:"text-sm",children:"Total Value"})}),e.jsxs(i,{className:"text-2xl font-bold",children:["AED ",Number(s?.total_value??0).toFixed(2)]})]}),e.jsxs(o,{children:[e.jsx(r,{children:e.jsx(c,{className:"text-sm",children:"Recovery Rate"})}),e.jsxs(i,{className:"text-2xl font-bold",children:[Number(s?.recovery_rate??0).toFixed(2),"%"]})]})]}),e.jsxs(o,{children:[e.jsx(r,{children:e.jsx(c,{children:"Pending Recovery"})}),e.jsx(i,{children:m?e.jsx("p",{className:"text-muted-foreground",children:"Loading carts..."}):n.length===0?e.jsx("p",{className:"text-muted-foreground",children:"No abandoned carts found."}):e.jsx("div",{className:"space-y-3",children:n.map(a=>e.jsxs("div",{className:"border rounded-lg p-4 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold",children:a.user?.email||a.email||"Guest"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:[a.items?.length||0," items"]})]}),e.jsxs("div",{className:"text-right",children:[e.jsxs("p",{className:"font-semibold",children:["AED ",Number(a.total||0).toFixed(2)]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:new Date(a.updated_at).toLocaleString()})]})]},a.id))})})]})]})};export{A 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.