PageSourceSearch

https://matchyforbusiness.com/assets/_app.conversions-N69X3px0.js

js matchyforbusiness.com collected 2026-10-02 01:37:47 UTC 8,784 bytes, 1 lines download raw bytes

1import{b as A,r as d,s as g,j as e,a as M}from"./main-CcYcFY5H.js";import{P as $}from"./PartnerLogo-CSGtMflG.js";import"./partner-logos-CjdXqLtB.js";const b={paid:0,confirmed:1,pending:2,signed_up:3,clicked:4,rejected:5};function h(s){return new Intl.NumberFormat("fr-FR",{style:"currency",currency:"EUR"}).format(s||0)}function v(s){return new Date(s).toLocaleDateString("fr-FR",{day:"2-digit",month:"short",year:"numeric"})}function q(s){return s?s.display_cashback&&s.display_cashback.trim()?s.display_cashback:s.cashback_fixed_amount&&Number(s.cashback_fixed_amount)>0?`${h(Number(s.cashback_fixed_amount))}`:s.cashback_percentage&&Number(s.cashback_percentage)>0?`${Number(s.cashback_percentage)} %`:"—":"—"}function E({s}){const x={paid:{label:"Payé",cls:"bg-black text-white"},confirmed:{label:"Confirmé",cls:"bg-[#E8FF3A] text-black"},pending:{label:"En attente de validation",cls:"bg-white text-black"},signed_up:{label:"Compte créé",cls:"bg-[#eae6dc] text-black"},clicked:{label:"Offre consultée",cls:"bg-white text-[#5a5a5a]"},rejected:{label:"Refusé",cls:"bg-[#ffd9d0] text-black"}}[s];return e.jsx("span",{className:"inline-block whitespace-nowrap rounded-full border-2 border-black px-2.5 py-1 text-[11px] font-bold "+x.cls,children:x.label})}function z(){const{user:s}=A(),[p,x]=d.useState([]),[m,P]=d.useState([]),[w,L]=d.useState([]),[y,F]=d.useState([]),[C,S]=d.useState(!0),[_,R]=d.useState(!0);d.useEffect(()=>{if(!s)return;let t=!0;return(async()=>{S(!0);const[n,c,u,f]=await Promise.all([g.from("cashback_transactions").select("id,brand_name,cashback_amount,order_amount,status,created_at,partner_id").eq("user_id",s.id).order("created_at",{ascending:!1}),g.from("partner_signups").select("id,brand_name,signup_at,status,partner_id").eq("user_id",s.id).order("signup_at",{ascending:!1}),g.from("affiliate_clicks").select("id,brand_name,clicked_at,partner_id").eq("user_id",s.id).order("clicked_at",{ascending:!1}).limit(300),g.from("b2b_partners").select("id,name,slug,logo_url,website_url,display_cashback,cashback_fixed_amount,cashback_percentage,validation_days")]);t&&(P(n.data??[]),L(c.data??[]),F(u.data??[]),x(f.data??[]),S(!1))})(),()=>{t=!1}},[s]);const k=d.useMemo(()=>{const t=new Map(p.map(a=>[a.id,a])),n=p.map(a=>({p:a,l:a.name.toLowerCase()})),c=(a,l)=>{if(a&&t.has(a))return t.get(a);const r=(l??"").toLowerCase().trim();if(!r)return null;const o=n.find(i=>r===i.l)??n.find(i=>r.includes(i.l)||i.l.includes(r));return o?o.p:null},u=new Map,f=(a,l,r)=>{const o=a?a.id:`brand:${l.toLowerCase()}`;let i=u.get(o);return i||(i={key:o,name:a?.name??l,partner:a,stage:"clicked",lastDate:r,txs:[],signups:[],clicks:0,earned:0,expectedLabel:q(a)},u.set(o,i)),r>i.lastDate&&(i.lastDate=r),i};for(const a of m){const l=c(a.partner_id,a.brand_name),r=f(l,a.brand_name||"Partenaire",a.created_at);r.txs.push(a),a.status!=="rejected"&&(r.earned+=Number(a.cashback_amount)||0);const o=a.status==="rejected"?"rejected":a.status;b[o]<b[r.stage]?r.stage=o:o==="rejected"&&r.stage==="clicked"&&(r.stage="rejected")}for(const a of w){const l=c(a.partner_id,a.brand_name),r=f(l,a.brand_name||"Partenaire",a.signup_at);r.signups.push(a),b.signed_up<b[r.stage]&&(r.stage="signed_up")}for(const a of y){const l=c(a.partner_id,a.brand_name),r=f(l,a.brand_name||"Partenaire",a.clicked_at);r.clicks+=1}return Array.from(u.values()).sort((a,l)=>b[a.stage]-b[l.stage]||l.lastDate.localeCompare(a.lastDate))},[m,w,y,p]),D=d.useMemo(()=>_?k.filter(t=>t.txs.length>0||t.signups.length>0):k,[k,_]),j=d.useMemo(()=>{const t=m.filter(c=>c.status==="pending").reduce((c,u)=>c+(Number(u.cashback_amount)||0),0),n=m.filter(c=>c.status==="confirmed"||c.status==="paid").reduce((c,u)=>c+(Number(u.cashback_amount)||0),0);return{pending:t,confirmed:n,count:m.length}},[m]);return e.jsxs("div",{className:"mx-auto w-full max-w-5xl px-4 py-6 sm:px-6 sm:py-10 md:px-12 md:py-12",children:[e.jsx("h1",{className:"text-[28px] sm:text-[42px] md:text-[52px] font-black uppercase leading-[0.95] tracking-[-0.03em] text-black",children:"Mes conversions"}),e.jsx("p",{className:"mt-2 sm:mt-3 max-w-2xl text-[13px] sm:text-[14px] text-[#5a5a5a]",children:"Partenaire par partenaire : vos souscriptions, où elles en sont et le cashback attendu."}),e.jsxs("div",{className:"mt-6 sm:mt-8 grid grid-cols-2 gap-3 sm:gap-4 lg:grid-cols-3",children:[e.jsx(N,{label:"Souscriptions suivies",value:String(j.count)}),e.jsx(N,{label:"Cashback en attente",value:h(j.pending)}),e.jsx(N,{label:"Cashback acquis",value:h(j.confirmed),highlight:!0})]}),e.jsx("div",{className:"mt-6 flex flex-wrap items-center gap-1.5",children:[{v:!0,label:"Avec souscription"},{v:!1,label:"Tous les partenaires visités"}].map(t=>e.jsx("button",{type:"button",onClick:()=>R(t.v),className:"rounded-full border-2 border-black px-4 py-2 text-[12px] font-semibold transition-all "+(_===t.v?"bg-black text-white shadow-[3px_3px_0_0_rgba(0,0,0,1)]":"bg-white text-black hover:-translate-y-0.5 hover:shadow-[3px_3px_0_0_rgba(0,0,0,1)]"),children:t.label},String(t.v)))}),e.jsxs("div",{className:"mt-4 space-y-3",children:[D.map(t=>e.jsxs("div",{className:"rounded-3xl border-2 border-black bg-white p-4 sm:p-5 shadow-[4px_4px_0_0_rgba(0,0,0,1)]",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[e.jsx($,{slug:t.partner?.slug??"",name:t.name,url:t.partner?.logo_url,websiteUrl:t.partner?.website_url,className:"size-10 rounded-lg bg-white object-contain p-1 ring-2 ring-black"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate text-[15px] font-black tracking-[-0.01em] text-black",children:t.name}),e.jsxs("div",{className:"mt-0.5 text-[11.5px] text-[#5a5a5a]",children:["Dernière activité le ",v(t.lastDate),t.clicks>0?` · ${t.clicks} visite${t.clicks>1?"s":""}`:""]})]})]}),e.jsxs("div",{className:"flex flex-col items-end gap-1.5",children:[e.jsx(E,{s:t.stage}),e.jsx("div",{className:"text-[12px] text-[#5a5a5a]",children:t.earned>0?e.jsxs("span",{className:"font-bold text-black",children:["+",h(t.earned)," de cashback"]}):e.jsxs(e.Fragment,{children:["Cashback attendu : ",e.jsx("span",{className:"font-bold text-black",children:t.expectedLabel})]})})]})]}),(t.txs.length>0||t.signups.length>0)&&e.jsxs("ul",{className:"mt-4 space-y-1.5 border-t-2 border-black/10 pt-3 text-[12.5px]",children:[t.txs.map(n=>e.jsxs("li",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("span",{className:"text-[#5a5a5a]",children:[v(n.created_at)," · souscription",n.order_amount!=null?` de ${h(Number(n.order_amount))}`:""]}),e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"font-bold text-black",children:["+",h(Number(n.cashback_amount))]}),e.jsx(E,{s:n.status==="rejected"?"rejected":n.status})]})]},n.id)),t.signups.map(n=>e.jsxs("li",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("span",{className:"text-[#5a5a5a]",children:[v(n.signup_at)," · compte créé"]}),e.jsx("span",{className:"text-[#5a5a5a]",children:n.status==="converted"?"Transaction détectée":n.status==="stalled"?"Pas encore de transaction payante":"En attente de votre première transaction"})]},n.id))]}),t.txs.length===0&&t.partner&&e.jsxs("p",{className:"mt-3 border-t-2 border-black/10 pt-3 text-[12px] text-[#9a9a9a]",children:["Le cashback est validé par le partenaire sous ",t.partner.validation_days??60," jours après votre première transaction payante."]})]},t.key)),!C&&D.length===0&&e.jsxs("div",{className:"rounded-3xl border-2 border-black bg-white p-10 text-center shadow-[4px_4px_0_0_rgba(0,0,0,1)]",children:[e.jsx("p",{className:"text-[14px] font-bold text-black",children:"Aucune conversion pour le moment"}),e.jsx("p",{className:"mt-2 text-[13px] text-[#5a5a5a]",children:"Souscrivez à une offre depuis le catalogue pour la voir apparaître ici."}),e.jsx(M,{to:"/catalogue",className:"mt-5 inline-block rounded-full border-2 border-black bg-black px-5 py-2.5 text-[13px] font-semibold text-white transition-all hover:-translate-y-0.5 hover:shadow-[4px_4px_0_0_rgba(0,0,0,1)]",children:"Voir le catalogue"})]}),C&&e.jsx("div",{className:"rounded-3xl border-2 border-black bg-white p-10 text-center text-[13px] text-[#9a9a9a]",children:"Chargement…"})]})]})}function N({label:s,value:p,highlight:x}){return e.jsxs("div",{className:"rounded-2xl border-2 border-black p-4 shadow-[4px_4px_0_0_rgba(0,0,0,1)] "+(x?"bg-[#E8FF3A]":"bg-white"),children:[e.jsx("div",{className:"text-[10.5px] font-bold uppercase tracking-[0.14em] text-black",children:s}),e.jsx("div",{className:"mt-1.5 text-[22px] sm:text-[26px] font-black tracking-[-0.02em] text-black",children:p})]})}export{z as component};

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.