PageSourceSearch

https://snestico.ai/assets/js/ScamCheck-CwfRDYMu.js

js snestico.ai collected 2026-10-05 15:08:29 UTC 22,227 bytes, 1 lines download raw bytes

1import{r as o,j as e,Z as z}from"./vendor-BOadm9Gy.js";import{u}from"./vendor-toast-D6B0hGGw.js";import{p as G,a as ee,S as te}from"./ScreenshotPicker-SyZal7gT.js";import{u as H}from"./leasing-CdBr7fTh.js";import{S as se}from"./SectionHero-DiEC8UrR.js";import{l as p,g as ae}from"./index-DcN63-UG.js";import{p as O,e as _,P as ne,b as re,c as le,d as oe,V as D,m as ie,f as de}from"./scamCheck-CbknRgRj.js";import{i as I,a2 as C,a7 as ce,bg as me,b6 as he,o as T,v as xe,q as pe,a8 as ue,ah as W,aE as ge,as as M,cM as ye,at as q,bC as be}from"./vendor-icons-kUGsRs8M.js";import"./PageHero-DcDr-0N-.js";import"./vendor-motion-DwikGbVM.js";import"./vendor-ui-CeWyqG0w.js";import"./vendor-classnames-CSqCgoPn.js";const P=ae()==="in"?"in":"us",U=P==="in"?"₹":"$",x="w-full rounded-xl border border-gray-200 bg-white px-3 py-2 text-[15px] text-[#0C1A2B] placeholder-gray-400 focus:border-[#84A9FF] focus:outline-none focus:ring-2 focus:ring-[#84A9FF]/20 sm:text-sm",Y="mb-1 block text-xs font-semibold text-gray-600",B="inline-flex items-center justify-center gap-1.5 rounded-full px-4 py-2 text-sm font-semibold transition active:scale-[0.98] disabled:opacity-50",f=({name:s,hint:d,children:m,className:a=""})=>e.jsxs("label",{className:`block ${a}`,children:[e.jsxs("span",{className:Y,children:[s,d&&e.jsx("span",{className:"ml-1 font-normal text-gray-400",children:d})]}),m]}),fe={likely_scam:{box:"border-red-200 bg-red-50",icon:ge,iconCls:"text-red-600",title:"text-red-800"},caution:{box:"border-amber-200 bg-amber-50",icon:W,iconCls:"text-amber-600",title:"text-amber-900"},looks_ok:{box:"border-emerald-200 bg-emerald-50",icon:T,iconCls:"text-emerald-600",title:"text-emerald-800"}};function je({f:s}){const d=s.level==="good"?q:W,m=s.level==="high"?"text-red-600":s.level==="medium"?"text-amber-600":"text-emerald-600";return e.jsxs("li",{className:"flex gap-3 py-2.5",children:[e.jsx(d,{className:`mt-0.5 h-5 w-5 flex-shrink-0 ${m}`,"aria-hidden":"true"}),e.jsxs("div",{children:[e.jsxs("p",{className:"font-semibold text-[#0C1A2B]",children:[s.title,e.jsx("span",{className:"sr-only",children:s.level==="high"?" (serious)":s.level==="medium"?" (worth checking)":" (good sign)"})]}),e.jsx("p",{className:"text-sm text-gray-600",children:s.detail})]})]})}const Ne=["Visit the flat in person (or send someone you trust) before paying anything, even a token.","Meet the owner and ask to see the sale deed or the latest property tax receipt in their name.","Read the rent agreement before you pay, and register it if the stay is 12 months or more.","Pay rent and deposit to the owner's own bank account named in the agreement, and keep receipts.","Never pay a token by UPI to block a flat you have not seen, or any gate-pass or visit fee."],we=["Tour the home in person (or send someone you trust) before paying anything.","Call the agent or management company on the number from the real listing, not the one you were sent.","Check who owns the home in county records and make sure that is who signs the lease.","Read and sign the lease before you pay a deposit.","Pay by check, card or a tenant portal. Never by wire, gift cards or crypto, and not by Zelle, Venmo or Cash App to someone you haven't met."],ve=p(["I already paid. What do I do now?","How do I check who really owns this home?","Is it normal to pay an application fee before a tour?"],["I already paid a token by UPI. What do I do now?","How do I check who really owns this flat?","Is 10 months deposit normal in Bengaluru?"]);function Ce({checkId:s}){const d=H(),[m,a]=o.useState(""),[h,b]=o.useState(null),[i,l]=o.useState([]),[g,w]=o.useState("");o.useEffect(()=>{l([]),w("")},[s]);const j=async n=>{if(!(n.trim().length<3||h)){b("ask");try{const N=await d(`/scam-check/${s}/ask`,{method:"POST",body:JSON.stringify({question:n})});l(v=>[...v,{q:n,a:N?.answer||""}]),a("")}catch(N){u.error(N?.message||"Snesty couldn't answer right now.")}finally{b(null)}}},E=async()=>{b("reply");try{const n=await d(`/scam-check/${s}/reply`,{method:"POST",body:JSON.stringify({})});w(n?.reply||"")}catch(n){u.error(n?.message||"Snesty couldn't write that right now.")}finally{b(null)}},S=async()=>{try{await navigator.clipboard.writeText(g),u.success("Copied. Paste it into your chat with them.")}catch{u.error("Couldn't copy. Select the text and copy it.")}};return e.jsxs("div",{className:"rounded-2xl border border-[#84A9FF]/30 bg-gradient-to-br from-[#F5F8FF] to-white p-5",children:[e.jsxs("p",{className:"flex items-center gap-2 font-bold text-[#0C1A2B]",children:[e.jsx(I,{className:"h-5 w-5 text-[#3A5A8C]"})," Ask Snesty about this"]}),e.jsxs("div",{className:"mt-3 rounded-xl border border-gray-100 bg-white p-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsx("p",{className:"text-sm text-gray-700",children:"Not sure how to answer them? Snesty writes a reply that asks for what a scammer can't give."}),e.jsxs("button",{type:"button",onClick:()=>void E(),disabled:h!==null,className:`${B} bg-[#0C1A2B] text-white hover:bg-[#1d3354]`,children:[h==="reply"?e.jsx(C,{className:"h-4 w-4 animate-spin"}):e.jsx(ce,{className:"h-4 w-4"})," ",g?"Write another":"Write my reply"]})]}),g&&e.jsxs("div",{className:"mt-3",children:[e.jsx("p",{className:"whitespace-pre-wrap rounded-xl bg-[#F1F3F6] px-3 py-2 text-sm text-[#1c2b3a]","data-testid":"scam-reply",children:g}),e.jsxs("button",{type:"button",onClick:()=>void S(),className:"mt-2 inline-flex items-center gap-1.5 text-xs font-semibold text-[#3A5A8C] hover:underline",children:[e.jsx(me,{className:"h-3.5 w-3.5"})," Copy"]})]})]}),i.map((n,N)=>e.jsxs("div",{className:"mt-3 space-y-1.5",children:[e.jsx("p",{className:"ml-auto w-fit max-w-[90%] rounded-2xl rounded-br-sm bg-[#0C1A2B] px-3 py-2 text-sm text-white",children:n.q}),e.jsx("p",{className:"max-w-[95%] whitespace-pre-wrap rounded-2xl rounded-bl-sm bg-white px-3 py-2 text-sm text-[#1c2b3a] ring-1 ring-gray-100",children:n.a})]},N)),i.length===0&&e.jsx("div",{className:"mt-3 flex flex-wrap gap-1.5",children:ve.map(n=>e.jsx("button",{type:"button",disabled:h!==null,onClick:()=>void j(n),className:"rounded-full border border-gray-200 bg-white px-3 py-1 text-xs text-gray-700 hover:border-[#84A9FF]/50 hover:bg-[#84A9FF]/5",children:n},n))}),e.jsxs("form",{className:"mt-3 flex gap-2",onSubmit:n=>{n.preventDefault(),j(m)},children:[e.jsx("input",{className:x,value:m,onChange:n=>a(n.target.value),placeholder:"Ask anything about this rental…","aria-label":"Your question for Snesty"}),e.jsx("button",{type:"submit",disabled:h!==null||m.trim().length<3,"aria-label":"Ask Snesty",className:"flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-full bg-[#0C1A2B] text-white disabled:opacity-40",children:h==="ask"?e.jsx(C,{className:"h-4 w-4 animate-spin"}):e.jsx(he,{className:"h-4 w-4"})})]}),e.jsx("p",{className:"mt-2 text-[11px] text-gray-500",children:"Snesty isn't a lawyer. For legal help, contact local legal aid or a tenant union."})]})}function Se({check:s,onReport:d,reporting:m}){const a=fe[s.verdict],h=a.icon,b=D[s.verdict],i=s.listing?.found?s.listing.contact:null;return e.jsxs("div",{className:"space-y-4","aria-live":"polite",children:[e.jsx("div",{className:`rounded-2xl border p-5 ${a.box}`,children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(h,{className:`h-8 w-8 flex-shrink-0 ${a.iconCls}`,"aria-hidden":"true"}),e.jsxs("div",{children:[e.jsx("h3",{className:`!m-0 !text-xl font-black ${a.title}`,children:b.title}),e.jsx("p",{className:"mt-1 text-[15px] text-gray-800",children:s.summary}),s.aiUsed&&e.jsxs("p",{className:"mt-2 inline-flex items-center gap-1 text-[11px] font-semibold text-gray-500",children:[e.jsx(I,{className:"h-3 w-3"})," Checked by our rules and Snesty"]})]})]})}),s.flags.length>0&&e.jsxs("div",{className:"rounded-2xl border border-gray-100 bg-white p-5",children:[e.jsx("h4",{className:"!mb-1 !text-base font-bold text-[#0C1A2B] underline decoration-[#84A9FF] decoration-2 underline-offset-4",children:"What we found"}),e.jsx("ul",{className:"divide-y divide-gray-100",children:s.flags.map(l
1=>e.jsx(je,{f:l},l.id))})]}),s.listing?.found&&e.jsxs("div",{className:"rounded-2xl border border-gray-100 bg-white p-5 text-sm",children:[e.jsx("h4",{className:"!mb-2 !text-base font-bold text-[#0C1A2B] underline decoration-[#84A9FF] decoration-2 underline-offset-4",children:"The real listing"}),e.jsxs("dl",{className:"grid gap-x-6 gap-y-1.5 sm:grid-cols-2",children:[s.listing.address&&e.jsxs("div",{children:[e.jsx("dt",{className:"text-gray-500",children:"Address"}),e.jsx("dd",{className:"font-medium text-[#0C1A2B]",children:s.listing.address})]}),s.listing.status&&e.jsxs("div",{children:[e.jsx("dt",{className:"text-gray-500",children:"Status"}),e.jsx("dd",{className:"font-medium capitalize text-[#0C1A2B]",children:s.listing.status.replace(/_/g," ")})]}),s.listing.price!=null&&e.jsxs("div",{children:[e.jsx("dt",{className:"text-gray-500",children:s.listing.isRent?"Listed rent":"Listed price"}),e.jsxs("dd",{className:"font-medium text-[#0C1A2B]",children:["$",s.listing.price.toLocaleString("en-US"),s.listing.isRent?"/mo":""]})]}),i&&e.jsxs("div",{className:"sm:col-span-2",children:[e.jsx("dt",{className:"text-gray-500",children:"Listed contact (call this one yourself)"}),e.jsxs("dd",{className:"font-medium text-[#0C1A2B]",children:[[i.name,i.company].filter(Boolean).join(", "),i.phone&&e.jsxs(e.Fragment,{children:[" · ",e.jsx("a",{className:"text-[#3A5A8C] underline",href:`tel:${i.phone.replace(/[^\d+]/g,"")}`,children:i.phone})]}),i.email&&e.jsxs(e.Fragment,{children:[" · ",e.jsx("a",{className:"text-[#3A5A8C] underline",href:`mailto:${i.email}`,children:i.email})]})]})]})]}),s.listing.url&&e.jsxs("a",{href:s.listing.url,target:"_blank",rel:"noopener noreferrer",className:"mt-3 inline-flex items-center gap-1 font-semibold text-[#3A5A8C] hover:underline",children:["Open the real listing ",e.jsx(M,{className:"h-3.5 w-3.5"})]})]}),e.jsxs("div",{className:"grid gap-4 lg:grid-cols-2",children:[e.jsxs("div",{className:"rounded-2xl border border-gray-100 bg-white p-5",children:[e.jsxs("h4",{className:"!mb-2 flex items-center gap-2 !text-base font-bold text-[#0C1A2B]",children:[e.jsx(ye,{className:"h-5 w-5 text-[#3A5A8C]"})," Ask them this"]}),e.jsx("ul",{className:"list-disc space-y-1 pl-5 text-sm text-gray-700",children:s.questions.map(l=>e.jsx("li",{children:l},l))}),e.jsx("p",{className:"mt-2 text-xs text-gray-500",children:p("A real landlord answers these easily. A scammer dodges or pushes you to pay.","A real owner answers these easily. A scammer dodges or pushes you to pay.")})]}),e.jsxs("div",{className:"rounded-2xl border border-gray-100 bg-white p-5",children:[e.jsxs("h4",{className:"!mb-2 flex items-center gap-2 !text-base font-bold text-[#0C1A2B]",children:[e.jsx(T,{className:"h-5 w-5 text-emerald-600"})," Before you pay"]}),e.jsx("ol",{className:"list-decimal space-y-1 pl-5 text-sm text-gray-700",children:p(we,Ne).map(l=>e.jsx("li",{children:l},l))}),s.ownerLookupUrl&&e.jsxs("a",{href:s.ownerLookupUrl,target:"_blank",rel:"noopener noreferrer",className:"mt-3 inline-flex items-center gap-1 text-sm font-semibold text-[#3A5A8C] hover:underline",children:["Look up the owner in county records ",e.jsx(M,{className:"h-3.5 w-3.5"})]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3 rounded-2xl border border-gray-100 bg-white p-4 text-sm",children:[s.reported?e.jsxs("p",{className:"flex items-center gap-2 font-semibold text-emerald-700",children:[e.jsx(q,{className:"h-5 w-5"})," Reported. Thank you: anyone who checks this phone, email or listing will be warned."]}):d?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"flex-1 text-gray-600",children:"Sure it's a scam? Report it so others checking the same listing, phone or email are warned."}),e.jsxs("button",{type:"button",onClick:d,disabled:m,className:`${B} border border-red-200 bg-white text-red-700 hover:bg-red-50`,children:[m?e.jsx(C,{className:"h-4 w-4 animate-spin"}):e.jsx(be,{className:"h-4 w-4"})," Report scam"]})]}):null,e.jsxs("p",{className:"basis-full text-xs text-gray-500",children:["Lost money already? Call your bank right away, then report it at"," ",e.jsx("a",{href:"https://reportfraud.ftc.gov",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"reportfraud.ftc.gov"})," and"," ",e.jsx("a",{href:"https://www.ic3.gov",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"ic3.gov"}),"."]})]})]})}
1function Ae(){const s=H(),[d,m]=z(),[a,h]=o.useState(()=>({..._(),...O(d)})),[b,i]=o.useState(!1),[l,g]=o.useState(null),[w,j]=o.useState([]),[E,S]=o.useState(!1),[n,N]=o.useState(!1),[v,V]=o.useState(""),[A,R]=o.useState([]),[k,$]=o.useState(!1),J=async()=>{if(v.trim().length<10&&!A.length){u.message("Paste the conversation or add a screenshot first.");return}$(!0);try{const t=await s("/scam-check/ai/extract",{method:"POST",body:JSON.stringify({text:v,images:A})}),{form:r,filled:c}=ie(a,t||{});h(r),u.success(c?`Snesty filled in ${c} detail${c===1?"":"s"}. Check them, then press Check it.`:"Nothing new to fill in.")}catch(t){u.error(t?.message||"Snesty couldn't read that.")}finally{$(!1)}},y=(t,r)=>h(c=>({...c,[t]:r})),L=o.useCallback(async()=>{try{j(await s("/scam-check")||[])}catch{}},[s]);o.useEffect(()=>{L()},[L]);const Z=d.toString();o.useEffect(()=>{const t=O(d);Object.keys(t).length&&(h({..._(),...t}),g(null),m({section:"scam-check"},{replace:!0}))},[Z]);const K=async()=>{if(!de(a)){u.error("Add the listing link or address, the message you got, or their phone or email.");return}i(!0),g(null);try{const t={...a,amount:a.amount||null,rent:a.rent||null},r=await s("/scam-check",{method:"POST",body:JSON.stringify(t)});g(r),j(c=>[r,...c.filter(F=>F.id!==r.id)].slice(0,20)),requestAnimationFrame(()=>document.getElementById("sn-scam-result")?.scrollIntoView?.({behavior:"smooth",block:"start"}))}catch(t){u.error(t?.message||"Couldn't check this rental. Try again in a moment.")}finally{i(!1)}},Q=async t=>{S(!0);try{await s(`/scam-check/${t.id}/report`,{method:"POST",body:JSON.stringify({})});const r={...t,reported:!0};g(c=>c?.id===t.id?r:c),j(c=>c.map(F=>F.id===t.id?r:F)),u.success("Reported. Thanks for warning others.")}catch(r){u.error(r?.message||"Couldn't report it.")}finally{S(!1)}},X=async t=>{try{await s(`/scam-check/${t}`,{method:"DELETE"}),j(r=>r.filter(c=>c.id!==t)),l?.id===t&&g(null)}catch(r){u.error(r?.message||"Couldn't delete it.")}};return e.jsxs("div",{className:"mx-auto w-full max-w-5xl px-4 py-6 sm:px-6",children:[e.jsx(se,{icon:T,title:"Scam",accent:"Check",subtitle:p("About to pay a deposit or application fee? Paste the listing and what they sent you. We check the real listing, its contact and earlier reports, and tell you what to do before any money changes hands.","About to pay a token, booking amount or deposit? Paste the ad and the WhatsApp chat. We check for India's common rental scams and earlier reports, and tell you what to do before any money changes hands.")}),e.jsxs("div",{className:"mt-6 rounded-2xl border border-[#84A9FF]/30 bg-gradient-to-br from-[#F5F8FF] to-white p-5 sm:p-6",children:[e.jsxs("p",{className:"flex items-center gap-2 font-bold text-[#0C1A2B]",children:[e.jsx(I,{className:"h-5 w-5 text-[#3A5A8C]"})," Paste the chat or add screenshots, Snesty fills this in"]}),e.jsx("textarea",{className:`${x} mt-3 min-h-[90px]`,value:v,onChange:t=>V(t.target.value),onPaste:t=>{const r=G(t.clipboardData?.items);r.length&&(t.preventDefault(),ee(r,A,R))},placeholder:"Paste the ad, texts or emails here (or paste a screenshot)","aria-label":"Conversation for Snesty to read"}),e.jsxs("div",{className:"mt-3 flex flex-wrap items-center justify-between gap-3",children:[e.jsx(te,{images:A,onChange:R,disabled:k}),e.jsxs("button",{type:"button",onClick:()=>void J(),disabled:k,className:`${B} bg-[#0C1A2B] text-white hover:bg-[#1d3354]`,children:[k?e.jsx(C,{className:"h-4 w-4 animate-spin"}):e.jsx(I,{className:"h-4 w-4"})," ",k?"Reading…":"Read with Snesty"]})]})]}),e.jsxs("form",{className:"mt-4 space-y-4 rounded-2xl border border-gray-100 bg-white p-5 sm:p-6",onSubmit:t=>{t.preventDefault(),K()},children:[e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx(f,{name:"Listing link",hint:p("(Zillow, Redfin, Craigslist, Facebook…)","(99acres, MagicBricks, NoBroker, Housing.com, Facebook…)"),children:e.jsx("input",{className:x,inputMode:"url",value:a.listingUrl,onChange:t=>y("listingUrl",t.target.value),placeholder:"https://…"})}),e.jsx(f,{name:"Address",hint:"(if you have it)",children:e.jsx("input",{className:x,value:a.address,onChange:t=>y("address",t.target.value),placeholder:p("1234 Main St, Austin, TX 78745","Flat 302, 5th Cross, HSR Layout, Bengaluru"),autoComplete:"off"})})]}),e.jsx(f,{name:"What they sent you",hint:"(paste the message or ad text)",children:e.jsx("textarea",{className:`${x} min-h-[110px]`,value:a.message,onChange:t=>y("message",t.target.value),placeholder:p("e.g. I'm working overseas so I can't show the house. Send the deposit by Zelle to hold it and I'll mail you the keys.","e.g. I am an army officer, just transferred. Send ₹10,000 token on GPay to block the flat and I will courier the keys.")})}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-3",children:[e.jsx(f,{name:"Their name or company",children:e.jsx("input",{className:x,value:a.contactName,onChange:t=>y("contactName",t.target.value),autoComplete:"off"})}),e.jsx(f,{name:"Their phone",children:e.jsx("input",{className:x,type:"tel",value:a.contactPhone,onChange:t=>y("contactPhone",t.target.value),placeholder:p("(512) 555-0100","98765 43210"),autoComplete:"off"})}),e.jsx(f,{name:"Their email",children:e.jsx("input",{className:x,type:"email",value:a.contactEmail,onChange:t=>y("contactEmail",t.target.value),autoComplete:"off"})})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[e.jsx(f,{name:"They want",children:e.jsxs("div",{className:"relative",children:[e.jsx("span",{className:"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-gray-400",children:U}),e.jsx("input",{className:`${x} pl-6`,inputMode:"numeric",value:a.amount,onChange:t=>y("amount",t.target.value.replace(/[^\d.,]/g,"")),placeholder:p("1,500","10,000")})]})}),e.jsx(f,{name:"For",children:e.jsxs("select",{className:x,value:a.purpose,onChange:t=>y("purpose",t.target.value),children:[e.jsx("option",{value:"",children:"Choose…"}),ne[P].map(t=>e.jsx("option",{value:t,children:re[t]},t))]})}),e.jsx(f,{name:"Paid by",children:e.jsxs("select",{className:x,value:a.paymentMethod,onChange:t=>y("paymentMethod",t.target.value),children:[e.jsx("option",{value:"",children:"Choose…"}),le[P].map(t=>e.jsx("option",{value:t,children:P==="in"&&t==="check"?"Cheque":oe[t]},t))]})}),e.jsx(f,{name:"Monthly rent quoted",children:e.jsxs("div",{className:"relative",children:[e.jsx("span",{className:"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-gray-400",children:U}),e.jsx("input",{className:`${x} pl-6`,inputMode:"numeric",value:a.rent,onChange:t=>y("rent",t.target.value.replace(/[^\d.,]/g,"")),placeholder:p("1,800","25,000")})]})})]}),e.jsxs("fieldset",{children:[e.jsx("legend",{className:Y,children:"Have you been inside?"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:[["yes",p("Yes, in person","Yes, I visited")],["virtual","Only a video"],["no","Not yet"]].map(([t,r])=>e.jsx("button",{type:"button","aria-pressed":a.seenInside===t,onClick:()=>y("seenInside",a.seenInside===t?"":t),className:`rounded-full border px-4 py-1.5 text-sm font-medium transition ${a.seenInside===t?"border-[#0C1A2B] bg-[#0C1A2B] text-white":"border-gray-200 bg-white text-gray-700 hover:bg-gray-50"}`,children:r},t))})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3 pt-1",children:[e.jsxs("button",{type:"submit",disabled:b,className:`${B} bg-[#0C1A2B] px-6 py-2.5 text-white hover:bg-[#1d3354]`,children:[b?e.jsx(C,{className:"h-4 w-4 animate-spin"}):e.jsx(xe,{className:"h-4 w-4"})," ",b?"Checking the listing…":"Check it"]}),e.jsx("p",{className:"text-xs text-gray-500",children:"Only you see your checks. Nothing is sent to the person you're checking."})]})]}),e.jsx("div",{id:"sn-scam-result",className:"scroll-mt-24",children:l&&e.jsxs("div",{className:"mt-6 space-y-4",children:[e.jsx(Se,{check:l,reporting:E,onReport:()=>void Q(l)}),e.jsx(Ce,{checkId:l.id})]})}),w.length>0&&e.jsxs("section",{className:"mt-6 rounded-2xl border border-gray-100 bg-white",children:[e.jsxs("button",{type:"button",onClick:()=>N(t=>!t),"aria-expanded":n,className:"flex w-full items-center justify-between px-5 py-3 text-left",children:[e.jsxs("span",{className:"font-bold text-[#0C1A2B]",children:["Your checks (",w.length,")"]}),e.jsx(pe,{className:`h-5 w-5 text-gray-400 transition ${n?"rotate-180":""}`})]}),n&&e.jsx("ul",{className:"divide-y divide-gray-100 border-t border-gray-100",children:w.map(t=>e.jsxs("li",{className:"flex items-center gap-3 px-5 py-3 text-sm",children:[e.jsx("span",{className:`h-2.5 w-2.5 flex-shrink-0 rounded-full ${t.verdict==="likely_scam"?"bg-red-500":t.verdict==="caution"?"bg-amber-500":"bg-emerald-500"}`,"aria-hidden":"true"}),e.jsxs("button",{type:"button",onClick:()=>{g(t),requestAnimationFrame(()=>document.getElementById("sn-scam-result")?.scrollIntoView?.({behavior:"smooth"}))},className:"min-w-0 flex-1 truncate text-left text-[#0C1A2B] hover:underline",children:[e.jsx("span",{className:"font-semibold",children:D[t.verdict].short}),e.jsxs("span",{className:"text-gray-500",children:[" · ",t.input.address||t.listing?.address||t.input.contactName||t.input.contactPhone||t.input.contactEmail||t.input.listingUrl||"Message check"]})]}),e.jsx("span",{className:"hidden text-xs text-gray-400 sm:inline",children:new Date(t.createdAt).toLocaleDateString(p("en-US","en-IN"),{month:"short",day:"numeric"})}),e.jsx("button",{type:"button",onClick:()=>void X(t.id),"aria-label":"Delete this check",className:"rounded-full p-1.5 text-gray-400 hover:bg-gray-100 hover:text-red-600",children:e.jsx(ue,{className:"h-4 w-4"})})]},t.id))})]})]})}var Me=Ae;export{Ce as AskSnestyAboutCheck,Ae as ScamCheck,Se as ScamResult,Me 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.