PageSourceSearch

https://seowrench.com/assets/PartnerPage-DT2MA000.js

js seowrench.com collected 2026-09-24 14:52:50 UTC 15,089 bytes, 1 lines download raw bytes

1import{b as q,r as i,f as O,A as T,j as e,C as b,h as w,R as U}from"./app-b2hICByS.js";const c=t=>String(t??"").replace(/\D/g,"");function P(t){const s=c(t).slice(0,14);return s.length<=11?s.replace(/^(\d{3})(\d)/,"$1.$2").replace(/^(\d{3})\.(\d{3})(\d)/,"$1.$2.$3").replace(/\.(\d{3})(\d{1,2})$/,".$1-$2"):s.replace(/^(\d{2})(\d)/,"$1.$2").replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3").replace(/\.(\d{3})(\d)/,".$1/$2").replace(/(\d{4})(\d{1,2})$/,"$1-$2")}function M(t){const s=c(t).length;return s===0||s===11||s===14}function K(t){const s=c(t).length;return s===11?"cpf":s===14?"cnpj":null}function E(t){const s=c(t).slice(0,11);return s.length<=10?s.replace(/^(\d{2})(\d)/,"($1) $2").replace(/(\d{4})(\d{1,4})$/,"$1-$2"):s.replace(/^(\d{2})(\d)/,"($1) $2").replace(/(\d{5})(\d{1,4})$/,"$1-$2")}function _(t){const s=String(t??"").trim();if(!s)return"unknown";if(/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(s))return"email";if(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(s))return"random";const a=c(s);return a.length===11||a.length===14?"document":a.length>=10&&a.length<=13&&/^\+?[\d\s()-]+$/.test(s)?"phone":"unknown"}const R={brl:"R$",usd:"US$",eur:"€"};function D(t){const s=Object.entries(t??{}).filter(([,a])=>a>0).sort((a,n)=>n[1]-a[1]).map(([a,n])=>`${R[a]??a.toUpperCase()} ${n.toFixed(2)}`);return s.length?s.join(" + "):"R$ 0,00"}const J={cliente:"bg-emerald-50 text-emerald-700 ring-emerald-200 dark:bg-emerald-500/10 dark:text-emerald-300 dark:ring-emerald-500/30",cancelando:"bg-amber-50 text-amber-700 ring-amber-200 dark:bg-amber-500/10 dark:text-amber-300 dark:ring-amber-500/30",cadastrado:"bg-slate-100 text-slate-500 ring-slate-200 dark:bg-slate-800 dark:text-slate-400 dark:ring-slate-700"};function V(){q("Programa de parceiros · SEOWrench");const[t,s]=i.useState(null),[a,n]=i.useState(null),[o,f]=i.useState(!1);if(i.useEffect(()=>{O.partnerMe().then(s).catch(r=>n(r instanceof T&&r.code==="not_partner"?"not_partner":"erro"))},[]),a==="not_partner")return e.jsxs("div",{className:"mx-auto max-w-2xl px-4 py-16 text-center",children:[e.jsx("h1",{className:"text-2xl font-extrabold text-slate-900 dark:text-white",children:"Programa de parceiros"}),e.jsx("p",{className:"mt-3 text-slate-600 dark:text-slate-300",children:"Esta conta ainda não faz parte do programa. Ele é feito para especialistas em SEO que usam a ferramenta de verdade — se for o seu caso, fale com a gente pelo suporte."})]});if(a)return e.jsx("p",{className:"p-10 text-center text-slate-500",children:"Não foi possível carregar agora."});if(!t)return e.jsx("p",{className:"p-10 text-center text-slate-500",children:"Carregando…"});async function N(){if(t)try{await navigator.clipboard.writeText(t.link),f(!0),setTimeout(()=>f(!1),2e3)}catch{}}return e.jsxs("div",{className:"mx-auto max-w-4xl px-4 py-8",children:[e.jsx("h1",{className:"text-2xl font-extrabold tracking-tight text-slate-900 dark:text-white",children:"Programa de parceiros"}),e.jsx("p",{className:"mt-1 text-sm text-slate-500 dark:text-slate-400",children:"Suas indicações e o que elas geraram. Os números vêm direto do Stripe — os mesmos que nós vemos aqui dentro."}),e.jsxs(b,{className:"mt-5",children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-wide text-slate-400",children:"Seu link"}),e.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2",children:[e.jsx("code",{className:"flex-1 truncate rounded-lg bg-slate-100 px-3 py-2 font-mono text-[13px] text-slate-800 dark:bg-slate-800 dark:text-slate-200",children:t.link}),e.jsx("button",{type:"button",onClick:()=>void N(),className:"rounded-lg bg-brand-600 px-4 py-2 text-sm font-semibold text-white transition hover:bg-brand-700",children:o?"Copiado ✓":"Copiar"})]}),e.jsxs("p",{className:"mt-2 text-[11.5px] text-slate-400",children:["Quem se cadastra por este link fica ligado a você permanentemente — a indicação é registrada no momento do cadastro e não muda depois. Comissão de ",e.jsxs("strong",{className:"text-slate-500 dark:text-slate-300",children:[t.commissionPct,"%"]})," ",t.commissionMonths===0?"sobre a assinatura, sem prazo definido — enquanto o cliente permanecer.":`sobre a assinatura, por até ${t.commissionMonths} meses por cliente ou enquanto ele permanecer (o que terminar primeiro).`]})]}),e.jsxs("div",{className:"mt-4 grid gap-3 sm:grid-cols-4",children:[e.jsx($,{label:"Cadastros",value:t.signups,hint:"pessoas que entraram pelo seu link"}),e.jsx($,{label:"Clientes",value:t.revenueOk?t.customers:"—",hint:"assinaturas ativas",tone:"emerald"}),e.jsx($,{label:`Comissão (${t.commissionPct}%)`,value:t.revenueOk?D(t.commission):"—",hint:t.commissionMonths===0?"por mês, enquanto os clientes ficarem":`por mês · até ${t.commissionMonths} meses por cliente`,tone:"emerald"}),e.jsx($,{label:"Próximo repasse",value:t.nextPayoutAt?new Date(t.nextPayoutAt).toLocaleDateString("pt-BR"):"—",hint:t.nextPayoutAt?`previsão · já repassado: ${D(t.paid)}`:"sem cliente ativo no momento"})]}),e.jsxs(b,{className:"mt-4 p-0",children:[e.jsxs("div",{className:"flex items-baseline justify-between border-b border-slate-200 px-5 py-3.5 dar
1k:border-slate-800",children:[e.jsx("h2",{className:"text-base font-semibold text-slate-900 dark:text-white",children:"Suas indicações"}),e.jsxs("span",{className:"text-xs text-slate-400",children:[t.signups," no total"]})]}),t.referrals.length===0?e.jsx("p",{className:"p-6 text-sm text-slate-500 dark:text-slate-400",children:"Ainda não há cadastros pelo seu link. Compartilhe e acompanhe por aqui."}):e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-left text-sm",children:[e.jsx("thead",{className:"border-b border-slate-200 text-xs uppercase text-slate-500 dark:border-slate-800 dark:text-slate-400",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-5 py-2.5",children:"Indicado"}),e.jsx("th",{className:"px-5 py-2.5",children:"Cadastro"}),e.jsx("th",{className:"px-5 py-2.5",children:"Plano"}),e.jsx("th",{className:"px-5 py-2.5",children:"Situação"})]})}),e.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-slate-800/60",children:t.referrals.map((r,m)=>e.jsxs("tr",{className:"text-slate-700 dark:text-slate-200",children:[e.jsx("td",{className:"px-5 py-2.5 font-mono text-xs",children:r.email}),e.jsx("td",{className:"px-5 py-2.5 font-mono text-xs text-slate-500 dark:text-slate-400",children:w(r.signedUpAt,"pt-BR")}),e.jsx("td",{className:"px-5 py-2.5 font-mono text-xs",children:r.plan??"—"}),e.jsx("td",{className:"px-5 py-2.5",children:e.jsx("span",{className:`rounded-full px-2 py-0.5 text-[11px] font-semibold ring-1 ring-inset ${J[r.status]}`,children:r.status})})]},`${r.email}-${m}`))})]})}),e.jsxs("p",{className:"border-t border-slate-100 px-5 py-3 text-[11.5px] text-slate-400 dark:border-slate-800/60",children:["Os e-mails aparecem parcialmente ocultos: você acompanha as conversões sem receber a lista de clientes.",!t.revenueOk&&" · Os dados de assinatura estão indisponíveis no momento — recarregue em instantes."]})]}),e.jsx(z,{billing:t.billing,onSaved:r=>s({...t,billing:r,canBePaid:!!(r.legalName&&r.taxId&&r.pixKey)})}),t.payouts.length>0&&e.jsxs(b,{className:"mt-4 p-0",children:[e.jsx("div",{className:"border-b border-slate-200 px-5 py-3.5 dark:border-slate-800",children:e.jsx("h2",{className:"text-base font-semibold text-slate-900 dark:text-white",children:"Repasses recebidos"})}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-left text-sm",children:[e.jsx("thead",{className:"border-b border-slate-200 text-xs uppercase text-slate-500 dark:border-slate-800 dark:text-slate-400",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-5 py-2.5",children:"Data"}),e.jsx("th",{className:"px-5 py-2.5",children:"Referência"}),e.jsx("th",{className:"px-5 py-2.5 text-right",children:"Valor"}),e.jsx("th",{className:"px-5 py-2.5",children:"Forma"}),e.jsx("th",{className:"px-5 py-2.5",children:"Comprovante"})]})}),e.jsx("tbody",{className:"divide-y divide-slate-100 dark:divide-slate-800/60",children:t.payouts.map(r=>e.jsxs("tr",{className:"text-slate-700 dark:text-slate-200",children:[e.jsx("td",{className:"px-5 py-2.5 font-mono text-xs",children:w(r.paidAt,"pt-BR")}),e.jsx("td",{className:"px-5 py-2.5 font-mono text-xs text-slate-500 dark:text-slate-400",children:r.period??"—"}),e.jsx("td",{className:"px-5 py-2.5 text-right font-mono text-xs font-semibold",children:(R[r.currency]??r.currency.toUpperCase())+" "+r.amount.toFixed(2)}),e.jsx("td",{className:"px-5 py-2.5 text-xs",children:r.method??"—"}),e.jsx("td",{className:"px-5 py-2.5",children:r.receiptKey?e.jsx("a",{href:U(`/api/partner/receipt/${encodeURIComponent(r.receiptKey)}`),target:"_blank",rel:"noopener noreferrer",className:"text-xs font-semibold text-brand-600 hover:underline dark:text-brand-400",children:"ver comprovante"}):e.jsx("span",{className:"text-xs text-slate-400",children:"—"})})]},r.id))})]})})]})]})}function z({billing:t,onSaved:s}){const[a,n]=i.useState(t),[o,f]=i.useState(t),[N,r]=i.useState(!1),[m,u]=i.useState({}),[C,j]=i.useState(null),v=!o.legalName||!o.taxId||!o.pixKey,I=a.legalName!==o.legalName||a.taxId!==o.taxId||a.pixKey!==o.pixKey||a.phone!==o.phone||a.address!==o.address,p={legalName:a.legalName.trim()?a.legalName.trim().length<3?"Nome muito curto.":null:"Obrigatório para emitir a nota.",taxId:c(a.taxId)?M(a.taxId)?null:"CPF tem 11 dígitos; CNPJ, 14.":"Obrigatório para o repasse.",pixKey:a.pixKey.trim()?_(a.pixKey)==="unknown"?"Use e-mail, telefone, CPF/CNPJ ou chave aleatória.":null:"Obrigatório para receber.",phone:a.phone.trim()&&![10,11].includes(c(a.phone).length)?"Informe DDD + número.":null},B=Object.values(p).some(Boolean);async function A(l){if(l.preventDefault(),u({legalName:!0,taxId:!0,pixKey:!0,phone:!0}),B){j({kind:"err",text:"Confira os campos destacados antes de salvar."});return}r(!0),j(null);const F={legalName:a.legalName.trim(),taxId:c(a.taxId),pixKey:a.pixKey.trim(),phone:c(a.phone),address:a.address.trim()};try{const x=await O.partnerBilling(F),S={legalName:x.legalName,taxId:x.taxId,pixKey:x.pixKey,phone:x.phone,address:x.address,updatedAt:new Date().toISOString().replace("T"," ").slice(0,19)};f(S),n(S),u({}),j({kind:"ok",text:"Dados salvos. ✓"}),s(S)}catch(x){j({kind:"err",text:x instanceof Error?x.message:"Não foi possível salvar."})}finally{r(!1)}}const h="w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm outline-none focus:border-brand-500 dark:border-slate-700 dark:bg-slate-950 dar
1k:text-white",k="border-rose-400 focus:border-rose-500 dark:border-rose-500/60",g="block text-xs font-semibold text-slate-500 dark:text-slate-400",y="mt-1 block text-[11.5px] font-normal text-rose-600 dark:text-rose-400",d=l=>m[l]&&p[l]?p[l]:null;return e.jsxs(b,{className:"mt-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h2",{className:"text-base font-semibold text-slate-900 dark:text-white",children:"Dados para recebimento"}),v?e.jsx("span",{className:"rounded-full bg-amber-50 px-2 py-0.5 text-[11px] font-semibold text-amber-700 ring-1 ring-inset ring-amber-200 dark:bg-amber-500/10 dark:text-amber-300 dark:ring-amber-500/30",children:"incompleto"}):e.jsx("span",{className:"rounded-full bg-emerald-50 px-2 py-0.5 text-[11px] font-semibold text-emerald-700 ring-1 ring-inset ring-emerald-200 dark:bg-emerald-500/10 dark:text-emerald-300 dark:ring-emerald-500/30",children:"completo"})]}),e.jsx("p",{className:"mt-1 text-[12.5px] text-slate-500 dark:text-slate-400",children:v?"Preencha para que a comissão possa ser repassada — sem nome, documento e chave PIX não conseguimos pagar nem emitir a nota.":"Usados apenas para o repasse da comissão e a emissão da nota. Nada além disso."}),C&&e.jsx("div",{className:`mt-3 rounded-lg px-3 py-2 text-sm ${C.kind==="ok"?"bg-emerald-50 text-emerald-700 dark:bg-emerald-950 dark:text-emerald-300":"bg-rose-50 text-rose-700 dark:bg-rose-950 dark:text-rose-300"}`,children:C.text}),e.jsxs("form",{onSubmit:A,noValidate:!0,className:"mt-4 grid gap-3 sm:grid-cols-2",children:[e.jsxs("label",{className:g,children:["Nome completo ou razão social",e.jsx("input",{value:a.legalName,onChange:l=>n({...a,legalName:l.target.value.slice(0,160)}),onBlur:()=>u({...m,legalName:!0}),autoComplete:"name","aria-invalid":!!d("legalName"),className:`mt-1 ${h} ${d("legalName")?k:""}`}),d("legalName")&&e.jsx("span",{className:y,children:p.legalName})]}),e.jsxs("label",{className:g,children:["CPF ou CNPJ",e.jsx("input",{value:P(a.taxId),onChange:l=>n({...a,taxId:P(l.target.value)}),onBlur:()=>u({...m,taxId:!0}),inputMode:"numeric",placeholder:"000.000.000-00","aria-invalid":!!d("taxId"),className:`mt-1 ${h} font-mono ${d("taxId")?k:""}`}),d("taxId")?e.jsx("span",{className:y,children:p.taxId}):K(a.taxId)&&e.jsx("span",{className:"mt-1 block text-[11.5px] font-normal text-slate-400",children:K(a.taxId)==="cpf"?"CPF":"CNPJ"})]}),e.jsxs("label",{className:g,children:["Chave PIX",e.jsx("input",{value:a.pixKey,onChange:l=>n({...a,pixKey:l.target.value.slice(0,140)}),onBlur:()=>u({...m,pixKey:!0}),placeholder:"e-mail, telefone, CPF/CNPJ ou chave aleatória","aria-invalid":!!d("pixKey"),className:`mt-1 ${h} font-mono ${d("pixKey")?k:""}`}),d("pixKey")&&e.jsx("span",{className:y,children:p.pixKey})]}),e.jsxs("label",{className:g,children:["Telefone ",e.jsx("span",{className:"font-normal",children:"(opcional)"}),e.jsx("input",{value:E(a.phone),onChange:l=>n({...a,phone:E(l.target.value)}),onBlur:()=>u({...m,phone:!0}),inputMode:"tel",autoComplete:"tel",placeholder:"(00) 00000-0000","aria-invalid":!!d("phone"),className:`mt-1 ${h} ${d("phone")?k:""}`}),d("phone")&&e.jsx("span",{className:y,children:p.phone})]}),e.jsxs("label",{className:`${g} sm:col-span-2`,children:["Endereço completo com CEP ",e.jsx("span",{className:"font-normal",children:"(opcional, para a nota fiscal)"}),e.jsx("input",{value:a.address,onChange:l=>n({...a,address:l.target.value.slice(0,300)}),autoComplete:"street-address",placeholder:"Rua, número, complemento — Bairro, Cidade/UF — CEP 00000-000",className:`mt-1 ${h}`})]}),e.jsxs("div",{className:"sm:col-span-2 flex flex-wrap items-center gap-x-3 gap-y-1",children:[e.jsx("button",{type:"submit",disabled:N||!I&&!v,className:"rounded-lg bg-brand-600 px-5 py-2 text-sm font-semibold text-white transition hover:bg-brand-700 disabled:opacity-60",children:N?"Salvando…":!I&&!v?"Dados salvos":"Salvar dados"}),o.updatedAt&&e.jsxs("span",{className:"text-[11.5px] text-slate-400",children:["atualizado em ",w(o.updatedAt,"pt-BR")]})]})]})]})}function $({label:t,value:s,hint:a,tone:n}){return e.jsxs(b,{children:[e.jsx("div",{className:"text-xs font-semibold text-slate-500 dark:text-slate-400",children:t}),e.jsx("div",{className:`mt-1 font-mono text-2xl font-bold ${n==="emerald"?"text-emerald-600 dark:text-emerald-400":"text-slate-900 dark:text-white"}`,children:s}),e.jsx("div",{className:"mt-1 text-[11px] text-slate-400",children:a})]})}export{V as PartnerPage};

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.