PageSourceSearch

https://radreport.com.br/assets/CampaignWizard-BggwXtGI.js

js radreport.com.br collected 2026-09-24 14:37:35 UTC 23,922 bytes, 3 lines download raw bytes

1import{j as e,a as G}from"./vendor-query-skQMsM6X.js";import{r as d}from"./vendor-react-DyYvSSk1.js";import{at as T,au as E,av as R,ax as k,aq as g,r as V,v as U,x as $,y as O,z as w,I as N,p as u,ab as I,a4 as Y,a5 as J,a7 as X,aa as Z,aK as ee,c as b,am as se,an as ae,ao as te,ap as ie,as as re,T as M}from"./index-BGwtrXIa.js";import{P as le}from"./progress-DewcR8Rb.js";import{T as B}from"./textarea-ChvLdc2s.js";import{i as P}from"./edgeFunctionClient-4dcAKx2Z.js";import{U as ne,Y as ce,L as z,aR as de,by as W,V as K,bI as oe,a as Q,aH as me,S as H,W as xe,a1 as he,da as pe,m as F,C as ue,i as je,br as fe,bg as ge}from"./vendor-ui-CCmu0bzQ.js";import{b as be}from"./useEmailCampaigns-CtRflpkm.js";import"./vendor-supabase-BfoV2C50.js";import"./errorTranslations-lTGRyFpS.js";import"./sessionTelemetry-X-Vnv8Qs.js";const ye=({value:s,onChange:t})=>{const[c,o]=d.useState(!1),[l,j]=d.useState(""),[i,f]=d.useState((s.emails??[]).join(`
2`)),m=s.suppressed_excluded??0,p=async()=>{o(!0);try{const a={filter_type:s.filter_type,search:l};if(s.filter_type==="by_specialty"&&(a.specialty=s.specialty),s.filter_type==="by_state"&&(a.state=s.state),s.filter_type==="inactive"&&(a.inactive_days=s.inactive_days||60),s.filter_type==="manual"){const S=i.split(/[\n,;]/).map(L=>L.trim()).filter(Boolean);a.emails=S}const r=await P("admin-list-email-recipients",a);if((r==null?void 0:r.ok)===!1){b.error(r.error||"Erro ao carregar destinatários"),t({...s,available:[],selected_emails:[],count:0,preview:[],suppressed_excluded:0});return}const h=r.recipients||[];t({...s,available:h,selected_emails:h.map(S=>S.email),count:h.length,preview:h.slice(0,5),suppressed_excluded:r.suppressed_excluded||0,emails:s.filter_type==="manual"?a.emails:s.emails})}catch(a){b.error(a.message||"Erro ao carregar destinatários")}finally{o(!1)}};d.useEffect(()=>{var a,r;s.filter_type!=="manual"&&(s.filter_type==="by_specialty"&&!((a=s.specialty)!=null&&a.trim())||s.filter_type==="by_state"&&!((r=s.state)!=null&&r.trim())||p())},[s.filter_type]);const x=d.useMemo(()=>{const a=s.available||[];if(!l.trim())return a;const r=l.toLowerCase();return a.filter(h=>h.email.toLowerCase().includes(r)||(h.user_name||"").toLowerCase().includes(r)||(h.specialty||"").toLowerCase().includes(r))},[s.available,l]),y=d.useMemo(()=>new Set(s.selected_emails||[]),[s.selected_emails]),v=a=>{const r=new Set(y);r.has(a)?r.delete(a):r.add(a);const h=Array.from(r);t({...s,selected_emails:h,count:h.length})},_=()=>{const a=new Set(y);x.forEach(h=>a.add(h.email));const r=Array.from(a);t({...s,selected_emails:r,count:r.length})},C=()=>t({...s,selected_emails:[],count:0});return e.jsxs(T,{children:[e.jsx(E,{children:e.jsxs(R,{className:"flex items-center gap-2",children:[e.jsx(ne,{className:"h-5 w-5"})," Destinatários"]})}),e.jsxs(k,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[1fr_2fr] gap-3",children:[e.jsxs("div",{children:[e.jsx(g,{children:"Tipo de filtro"}),e.jsxs(V,{value:s.filter_type,onValueChange:a=>t({...s,filter_type:a,available:[],selected_emails:[],count:void 0}),children:[e.jsx(U,{children:e.jsx($,{})}),e.jsxs(O,{children:[e.jsx(w,{value:"all",children:"Todos os usuários"}),e.jsx(w,{value:"inactive",children:"Usuários inativos"}),e.jsx(w,{value:"by_specialty",children:"Por especialidade"}),e.jsx(w,{value:"by_state",children:"Por estado (UF)"}),e.jsx(w,{value:"manual",children:"Lista manual"})]})]})]}),e.jsxs("div",{children:[e.jsx(g,{children:"Buscar (e-mail, nome ou especialidade)"}),e.jsxs("div",{className:"relative",children:[e.jsx(ce,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(N,{className:"pl-9",placeholder:"ex.: ana, radiologia, @gmail",value:l,onChange:a=>j(a.target.value)})]})]})]}),s.filter_type==="inactive"&&e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:e.jsxs("div",{children:[e.jsx(g,{children:"Dias sem login (mínimo)"}),e.jsx(N,{type:"number",value:s.inactive_days??60,onChange:a=>t({...s,inactive_days:parseInt(a.target.value)||60})})]})}),s.filter_type==="by_specialty"&&e.jsx(N,{placeholder:"Ex: Radiologia",value:s.specialty??"",onChange:a=>t({...s,specialty:a.target.value})}),s.filter_type==="by_state"&&e.jsx(N,{placeholder:"Ex: SP",maxLength:2,value:s.state??"",onChange:a=>t({...s,state:a.target.value.toUpperCase()})}),s.filter_type==="manual"&&e.jsxs("div",{children:[e.jsx(g,{children:"E-mail
2s (um por linha ou separados por vírgula)"}),e.jsx(B,{rows:5,placeholder:`[email protected]
3[email protected]`,value:i,onChange:a=>f(a.target.value)})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsxs(u,{onClick:p,disabled:c,size:"sm",children:[c?e.jsx(z,{className:"h-4 w-4 animate-spin"}):e.jsx(de,{className:"h-4 w-4"}),"Atualizar lista"]}),e.jsxs(u,{onClick:_,variant:"outline",size:"sm",disabled:x.length===0,children:["Selecionar visíveis (",x.length,")"]}),e.jsx(u,{onClick:C,variant:"ghost",size:"sm",disabled:y.size===0,children:"Limpar seleção"})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[e.jsxs(I,{variant:"secondary",children:[(s.available||[]).length," encontrados"]}),e.jsxs(I,{className:"bg-primary text-primary-foreground",children:[y.size," selecionados"]}),m>0&&e.jsx(Y,{children:e.jsxs(J,{children:[e.jsx(X,{asChild:!0,children:e.jsxs(I,{variant:"outline",className:"gap-1 cursor-help",children:[m," removidos automaticamente (cancelaram inscrição)",e.jsx(W,{className:"h-3 w-3"})]})}),e.jsx(Z,{className:"max-w-xs",children:'Emails de usuários que clicaram em "cancelar inscrição" são automaticamente excluídos de qualquer envio, conforme LGPD/CAN-SPAM.'})]})})]}),e.jsxs("div",{className:"rounded-lg border max-h-96 overflow-y-auto",children:[x.length===0?e.jsx("div",{className:"p-8 text-center text-sm text-muted-foreground",children:c?"Carregando…":'Nenhum destinatário. Ajuste os filtros e clique em "Atualizar lista".'}):e.jsx("ul",{className:"divide-y",children:x.slice(0,200).map(a=>{const r=y.has(a.email);return e.jsxs("li",{className:"flex items-center gap-3 px-3 py-2 hover:bg-muted/40",children:[e.jsx(ee,{checked:r,onCheckedChange:()=>v(a.email)}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-sm font-medium truncate",children:a.user_name||"—"}),e.jsx("div",{className:"text-xs text-muted-foreground truncate",children:a.email})]}),a.specialty&&e.jsx(I,{variant:"outline",className:"text-xs",children:a.specialty})]},a.email)})}),x.length>200&&e.jsxs("div",{className:"p-2 text-xs text-center text-muted-foreground border-t bg-muted/30",children:["Exibindo 200 de ",x.length,". Refine a busca para ver os demais — todos os ",y.size," selecionados serão enviados."]})]})]})]})},ve=({template:s,open:t,onOpenChange:c,onSelect:o})=>{if(!s)return null;const l=s.html_template.split("{{subject}}").join(s.display_name).split("{{preheader}}").join(s.description??"").split("{{content}}").join('<p style="color:#475569;font-size:15px;line-height:1.6">Esta é a área onde o conteúdo da sua mensagem será renderizado. O texto suporta <strong>formatação</strong>, listas e <a href="#">links</a> para uma comunicação clara e fiel à identidade visual do RadReport.</p>').split("{{cta_text}}").join("Acessar plataforma").split("{{cta_url}}").join("#").split("{{user_name}}").join("Dr(a). Radiologista").split("{{first_name}}").join("Radiologista").split("{{specialty}}").join("Radiologia").split("{{unsubscribe_url}}").join("#");return e.jsx(se,{open:t,onOpenChange:c,children:e.jsxs(ae,{className:"max-w-4xl h-[85vh] flex flex-col",children:[e.jsxs(te,{children:[e.jsx(ie,{children:s.display_name}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s.description})]}),e.jsx("div",{className:"flex-1 overflow-hidden rounded-lg border bg-white",children:e.jsx("iframe",{srcDoc:l,className:"w-full h-full",title:s.display_name,sandbox:""})}),e.jsxs(re,{children:[e.jsx(u,{variant:"outline",onClick:()=>c(!1),children:"Fechar"}),e.jsxs(u,{onClick:()=>{o(s),c(!1)},children:[e.jsx(K,{className:"h-4 w-4"})," Selecionar este template"]})]})]})})},_e=({value:s,onChange:t})=>{const{data:c,isLoading:o}=be(),[l,j]=d.useState(null);return o?e.jsx("div",{className:"flex justify-center p-8",children:e.jsx(z,{className:"h-6 w-6 animate-spin"})}):e.jsxs(T,{children:[e.jsx(E,{children:e.jsxs(R,{className:"flex items-center gap-2",children:[e.jsx(oe,{className:"h-5 w-5"})," Escolha o template"]})}),e.jsx(k,{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:(c??[]).map(i=>{const f=i.html_template.split("{{subject}}").join(i.display_name).split("{{preheader}}").join(i.description??"").split("{{content}}").join('<p style="color:#475569">Pré-visualização do conteúdo da mensagem.</p>').split("{{cta_text}}").join("Acessar plataforma").split("{{cta_url}}").join("#").split("{{user_name}}").join("Dr(a). Radiologista").split("{{first_name}}").join("Radiologista").split("{{specialty}}").join("Radiologia").split("{{unsubscribe_url}}").join("#"),m=s===i.name;return e.jsxs("div",{className:M("rounded-lg border-2 p-3 transition-all",m?"border-primary ring-2 ring-primary/20":"border-border hover:border-primary/50"),children:[e.jsxs("div",{className:"flex items-start justify-between mb-2 gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"font-semibold truncate",children:i.display_name}),e.jsx("div",{className:"text-xs text-muted-foreground line-clamp-2",children:i.description})]}),m&&e.jsx(K,{className:"h-5 w-5 text-primary shrink-0"})]}),e.jsx("div",{className:"bg-white rounded border overflow-hidden mb-2",style:{height:220},children:e.jsx("iframe",{srcDoc:f,className:"w-full h-full pointer-events-none",style:{transform:"scale(0.5)",transformOrigin:"top left",width:"200%",height:"200%"},title:i.display_name,sandbox:""})}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(u,{size:"sm",variant:"outline",className:"flex-1",onClick:()=>j(i),children:[e.jsx(Q,{className:"h-4 w-4"})," Visualizar"]}),e.jsx(u,{size:"sm",className:"flex-1",variant:m?"secondary":"default",onClick:()=>t(i.name,i),children:m?"Selecionado":"Selecionar"})]})]},i.id)})}),e.jsx(ve,{template:l,open:!!l,onOpenChange:i=>!i&&j(null),onSelect:i=>t(i.name,i)})]})},Ne=({value:s,onChange:t,category:c,template:o})=>
3{const[l,j]=d.useState(""),[i,f]=d.useState("profissional"),[m,p]=d.useState(""),[x,y]=d.useState(!1),[v,_]=d.useState(!1),[C,a]=d.useState("desktop"),r=async()=>{if(!l.trim()||l.trim().length<10)return b.error("Descreva o objetivo da campanha (mínimo 10 caracteres)");y(!0);try{const n=await P("admin-autofill-email-ai",{brief:l,template_category:c,tone:i,audience:m.trim()||void 0}),A=n.campaign||n;t({name:A.name||s.name,subject:A.subject||s.subject,preheader:A.preheader||s.preheader,cta_text:A.cta_text||s.cta_text,cta_url:A.cta_url||s.cta_url,body_html:A.body_html||s.body_html}),b.success("Conteúdo gerado pela IA")}catch(n){b.error(n.message||"Falha ao gerar com IA")}finally{y(!1)}},h=async()=>{if(!s.body_html.trim())return b.error("Escreva ou gere conteúdo antes de refinar");_(!0);try{const n=await P("admin-refine-email-ai",{html:s.body_html,instruction:l||`Tom ${i}, manter pt-BR clínico, sem emojis`});t({...s,body_html:n.html||s.body_html}),b.success("Conteúdo refinado")}catch(n){b.error(n.message||"Falha ao refinar")}finally{_(!1)}},S=d.useMemo(()=>o?o.html_template.split("{{subject}}").join(s.subject||o.display_name).split("{{preheader}}").join(s.preheader||"").split("{{content}}").join(s.body_html||'<p style="color:#94a3b8">Comece a escrever ou gere com IA…</p>').split("{{cta_text}}").join(s.cta_text||"Acessar").split("{{cta_url}}").join(s.cta_url||"#").split("{{user_name}}").join("Dr(a). Radiologista").split("{{first_name}}").join("Radiologista").split("{{specialty}}").join("Radiologia").split("{{unsubscribe_url}}").join("#preview"):'<p style="font-family:system-ui;padding:20px;color:#64748b">Selecione um template no passo anterior.</p>',[o,s]),L=s.subject.length,q=s.preheader.length;return e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[e.jsxs(T,{children:[e.jsx(E,{children:e.jsxs(R,{className:"flex items-center gap-2",children:[e.jsx(me,{className:"h-5 w-5"})," Composição"]})}),e.jsxs(k,{className:"space-y-4",children:[e.jsxs("div",{className:"rounded-lg border bg-muted/30 p-3 space-y-3",children:[e.jsxs(g,{className:"flex items-center gap-2",children:[e.jsx(H,{className:"h-4 w-4"})," Briefing para IA"]}),e.jsx(B,{rows:3,placeholder:"Ex: Anúncio do novo recurso de ditado por voz, focar em ganho de produtividade",value:l,onChange:n=>j(n.target.value)}),e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsxs("div",{children:[e.jsx(g,{className:"text-xs",children:"Tom"}),e.jsxs(V,{value:i,onValueChange:n=>
3f(n),children:[e.jsx(U,{children:e.jsx($,{})}),e.jsxs(O,{children:[e.jsx(w,{value:"amigavel",children:"Amigável"}),e.jsx(w,{value:"profissional",children:"Profissional"}),e.jsx(w,{value:"urgente",children:"Urgente"})]})]})]}),e.jsxs("div",{children:[e.jsx(g,{className:"text-xs",children:"Público (opcional)"}),e.jsx(N,{placeholder:"ex: residentes",value:m,onChange:n=>p(n.target.value)})]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(u,{size:"sm",onClick:r,disabled:x,className:"flex-1",children:[x?e.jsx(z,{className:"h-4 w-4 animate-spin"}):e.jsx(H,{className:"h-4 w-4"}),"Preencher tudo com IA"]}),e.jsxs(u,{size:"sm",variant:"outline",onClick:h,disabled:v,children:[v?e.jsx(z,{className:"h-4 w-4 animate-spin"}):e.jsx(xe,{className:"h-4 w-4"}),"Refinar corpo"]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx(g,{children:"Nome interno da campanha"}),e.jsx(N,{value:s.name,onChange:n=>t({...s,name:n.target.value}),placeholder:"Lançamento ditado v2"})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between items-baseline",children:[e.jsx(g,{children:"Assunto"}),e.jsxs("span",{className:M("text-xs",L>=30&&L<=50?"text-emerald-600":"text-muted-foreground"),children:[L," chars (ideal 30-50)"]})]}),e.jsx(N,{value:s.subject,onChange:n=>t({...s,subject:n.target.value}),placeholder:"Novidade: ditado por voz aprimorado"})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between items-baseline",children:[e.jsx(g,{children:"Preheader"}),e.jsxs("span",{className:M("text-xs",q>0&&q<=100?"text-emerald-600":"text-muted-foreground"),children:[q," chars (ideal ≤100)"]})]}),e.jsx(N,{value:s.preheader,onChange:n=>t({...s,preheader:n.target.value}),placeholder:"Reduza tempo de laudo em até 40%"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsxs("div",{children:[e.jsx(g,{children:"Texto do CTA"}),e.jsx(N,{value:s.cta_text,onChange:n=>t({...s,cta_text:n.target.value}),placeholder:"Experimentar"})]}),e.jsxs("div",{children:[e.jsx(g,{children:"URL do CTA"}),e.jsx(N,{value:s.cta_url,onChange:n=>t({...s,cta_url:n.target.value}),placeholder:"https://radreport.com.br/editor"})]})]}),e.jsxs("div",{children:[e.jsx(g,{children:"HTML do corpo"}),e.jsx(B,{rows:10,className:"font-mono text-xs",value:s.body_html,onChange:n=>t({...s,body_html:n.target.value}),placeholder:"<p>Olá, {{first_name}}! ...</p>"}),e.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:["Variáveis: ",e.jsx("code",{children:"{{first_name}}"})," ",e.jsx("code",{children:"{{user_name}}"})," ",e.jsx("code",{children:"{{specialty}}"})]})]})]})]})]}),e.jsxs(T,{children:[e.jsx(E,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(R,{className:"text-base",children:"Pré-visualização ao vivo"}),e.jsxs("div",{className:"flex items-center gap-1 rounded-md border p-1",children:[e.jsx(u,{size:"sm",variant:C==="desktop"?"secondary":"ghost",onClick:()=>a("desktop"),className:"h-7 px-2",children:e.jsx(he,{className:"h-4 w-4"})}),e.jsx(u,{size:"sm",variant:C==="mobile"?"secondary":"ghost",onClick:()=>a("mobile"),className:"h-7 px-2",children:e.jsx(pe,{className:"h-4 w-4"})})]})]})}),e.jsx(k,{children:e.jsx("div",{className:"bg-muted/30 rounded-lg p-3 overflow-auto",style:{height:600},children:e.jsx("div",{className:M("mx-auto bg-white rounded shadow-sm overflow-hidden transition-all",C==="desktop"?"w-full max-w-[640px]":"w-[375px]"),style:{height:"100%"},children:e.jsx("iframe",{srcDoc:S,className:"w-full h-full",title:"Preview",sandbox:""})})})})]})]})},we=({composition:s,template:t,category:c,recipients:o})=>{const[l,j]=d.useState(""),[i,f]=d.useState(!1),m=d.useMemo(()=>t?t.html_template.split("{{subject}}").join(s.subject).split("{{preheader}}").join(s.preheader).split("{{content}}").join(s.body_html).split("{{cta_text}}").join(s.cta_text).split("{{cta_url}}").join(s.cta_url).split("{{user_name}}").join("Dr(a). Radiologista").split("{{first_name}}").join("Radiologista").split("{{specialty}}").join("Radiologia").split("{{unsubscribe_url}}").join("#preview"):"<p>Selecione um template</p>",[s,t]),p=async()=>
3{if(!l||!t)return b.error("Informe um e-mail de teste");f(!0);try{await P("admin-send-bulk-email",{name:`[TESTE] ${s.name||s.subject}`,subject:s.subject,preheader:s.preheader,cta_text:s.cta_text,cta_url:s.cta_url,body_html:s.body_html,template_name:t.name,category:c,test_mode:!0,test_email:l}),b.success(`E-mail teste enviado para ${l}`)}catch(x){b.error(x.message||"Falha no envio teste")}finally{f(!1)}};return e.jsxs(T,{children:[e.jsx(E,{children:e.jsxs(R,{className:"flex items-center gap-2",children:[e.jsx(Q,{className:"h-5 w-5"})," Revisão"]})}),e.jsxs(k,{className:"space-y-4",children:[((o==null?void 0:o.suppressed_excluded)??0)>0&&e.jsxs("div",{className:"flex items-start gap-2 rounded-md border border-amber-500/30 bg-amber-500/5 p-3 text-sm",children:[e.jsx(W,{className:"h-4 w-4 text-amber-600 shrink-0 mt-0.5"}),e.jsxs("span",{children:[e.jsx("strong",{children:o.suppressed_excluded})," destinatário(s) serão automaticamente removidos do envio por terem cancelado a inscrição."]})]}),e.jsx("div",{className:"rounded-lg border overflow-hidden bg-white",style:{height:500},children:e.jsx("iframe",{srcDoc:m,className:"w-full h-full",title:"Preview",sandbox:""})}),e.jsxs("div",{className:"rounded-lg border p-3 space-y-2",children:[e.jsx(g,{children:"Enviar e-mail teste"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(N,{type:"email",placeholder:"[email protected]",value:l,onChange:x=>j(x.target.value)}),e.jsxs(u,{onClick:p,disabled:i,variant:"outline",children:[i?e.jsx(z,{className:"h-4 w-4 animate-spin"}):e.jsx(F,{className:"h-4 w-4"}),"Enviar teste"]})]})]})]})]})},Ce=({composition:s,recipients:t,template:c,category:o,onSent:l})=>{const[j,i]=d.useState(!1),[f,m]=d.useState(!1),[p,x]=d.useState(null),y=G(),v=async()=>{if(!c)return b.error("Template não selecionado");i(!0);try{const _=t.selected_emails&&t.selected_emails.length>0?t.selected_emails:(t.available||[]).map(S=>S.email),C={name:s.name,subject:s.subject,preheader:s.preheader,cta_text:s.cta_text,cta_url:s.cta_url,body_html:s.body_html,template_name:c.name,category:o,selected_emails:_},a=await P("admin-send-bulk-email",C),r=a.suppressed_skipped??0;x({sent:a.total_sent??0,failed:a.total_failed??0,suppressed:r});const h=r>0?` · ${r} removidos por unsubscribe`:"";b.success(`Campanha enviada: ${a.total_sent} enviados, ${a.total_failed} falhas${h}`),y.invalidateQueries({queryKey:["email-campaigns"]}),l()}catch(_){b.error(_.message||"Falha no envio")}finally{i(!1)}};return p?e.jsx(T,{children:e.jsxs(k,{className:"pt-6 text-center space-y-3",children:[e.jsx(ue,{className:"h-12 w-12 text-green-600 mx-auto"}),e.jsx("h3",{className:"text-xl font-semibold",children:"Campanha disparada"}),e.jsxs("p",{className:"text-muted-foreground",children:[p.sent," e-mails enviados · ",p.failed," falhas"]}),p.suppressed>0&&e.jsxs("p",{className:"text-sm text-muted-foreground",children:[p.suppressed," removidos automaticamente (unsubscribe)"]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:'Acompanhe a entrega na aba "Histórico"'})]})}):e.jsxs(T,{children:[e.jsx(E,{children:e.jsxs(R,{className:"flex items-center gap-2",children:[e.jsx(F,{className:"h-5 w-5"})," Envio"]})}),e.jsxs(k,{className:"space-y-4",children:[e.jsxs("div",{className:"rounded-lg border bg-muted/30 p-4 space-y-2",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Campanha"}),e.jsx("span",{className:"font-medium",children:s.name||"—"})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Template"}),e.jsx("span",{className:"font-medium",children:(c==null?void 0:c.display_name)||"—"})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Assunto"}),e.jsx("span",{className:"font-medium",children:s.subject||"—"})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Destinatários"}),e.jsx("span",{className:"font-bold text-lg",children:t.count??"—"})]}),(t.suppressed_excluded??0)>0&&e.jsxs("div",{className:"flex justify-between text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:"Removidos por unsubscribe"}),e.jsx("span",{className:"font-medium",children:t.suppressed_excluded})]})]}),e.jsxs("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/5 p-3 flex gap-3",children:[e.jsx(je,{className:"h-5 w-5 text-amber-600 shrink-0 mt-0.5"}),e.jsxs("div",{className:"text-sm",children:[e.jsx("strong",{children:"Ação irreversível."})," O envio em massa não pode ser desfeito. Confira tudo antes de prosseguir."]})]}),e.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[e.jsx("input",{type:"checkbox",checked:f,onChange:_=>m(_.target.checked)}),"Confirmo o disparo da campanha para ",t.count??0," destinatários"]}),e.jsxs(u,{onClick:v,disabled:!f||j||!t.count,className:"w-full",size:"lg",children:[j?e.jsx(z,{className:"h-4 w-4 animate-spin"}):e.jsx(F,{className:"h-4 w-4"}),"Disparar campanha"]})]})]})},D=["Destinatários","Template","Composição","Revisão","Envio"],Me=()=>{const[s,t]=d.useState(0),[c,o]=d.useState({filter_type:"all"}
3),[l,j]=d.useState(null),[i,f]=d.useState(null),[m,p]=d.useState({name:"",subject:"",preheader:"",cta_text:"Acessar plataforma",cta_url:"https://radreport.com.br/editor",body_html:""}),x=()=>{t(0),o({filter_type:"all"}),j(null),f(null),p({name:"",subject:"",preheader:"",cta_text:"Acessar plataforma",cta_url:"https://radreport.com.br/editor",body_html:""})},y=()=>s===0?typeof c.count=="number"&&c.count>0:s===1?!!l:s===2?m.name&&m.subject&&m.body_html:!0;return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex justify-between text-sm text-muted-foreground",children:[e.jsxs("span",{className:"font-medium text-foreground",children:["Etapa ",s+1," de ",D.length,": ",D[s]]}),e.jsxs("span",{children:[Math.round((s+1)/D.length*100),"%"]})]}),e.jsx(le,{value:(s+1)/D.length*100})]}),e.jsxs("div",{children:[s===0&&e.jsx(ye,{value:c,onChange:o}),s===1&&e.jsx(_e,{value:l,onChange:(v,_)=>{j(v),f(_)}}),s===2&&e.jsx(Ne,{value:m,onChange:p,category:(i==null?void 0:i.category)??"announcement",template:i}),s===3&&e.jsx(we,{composition:m,template:i,category:(i==null?void 0:i.category)??"announcement",recipients:c}),s===4&&e.jsx(Ce,{composition:m,recipients:c,template:i,category:(i==null?void 0:i.category)??"announcement",onSent:x})]}),e.jsxs("div",{className:"flex flex-wrap justify-between gap-3",children:[e.jsxs(u,{variant:"outline",onClick:()=>t(v=>Math.max(0,v-1)),disabled:s===0,children:[e.jsx(fe,{className:"h-4 w-4"})," Anterior"]}),s<D.length-1&&e.jsxs(u,{onClick:()=>t(v=>v+1),disabled:!y(),children:["Próximo ",e.jsx(ge,{className:"h-4 w-4"})]})]})]})};export{Me as CampaignWizard};

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.