PageSourceSearch

https://cbnamazonia.com/assets/NewsletterEditions-CooIhrA3.js

js cbnamazonia.com collected 2026-09-25 15:03:16 UTC 7,861 bytes, 1 lines download raw bytes

1import{j as e}from"./vendor-editor-BX0sR0z-.js";import{r as l}from"./vendor-react-BPk9u-w4.js";import{toast as m}from"./vendor-sonner-DPZ7yCFm.js";import{d as R,am as $,h as N,l as y}from"./index-FZUSOwo2.js";import{A as P}from"./AdminNavLink-DrYNRYaf.js";import{an as A,bo as D,L as w,ei as L,y as M,ae as q,U as B,C as F,a as T}from"./vendor-icons-D7M_7Je-.js";import"./vendor-charts-Cf-ruFca.js";import"./vendor-ui-utils-Bbg69IUi.js";import"./vendor-graph-Df3mHyA7.js";import"./vendor-supabase-UBwEW4nm.js";import"./vendor-helmet-C74EPpLp.js";const p=15,Y=()=>{const{currentPortal:o}=R(),d=$(),[u,v]=l.useState([]),[k,h]=l.useState(!0),[i,c]=l.useState(0),[b,_]=l.useState(0),[n,E]=l.useState("all"),[x,f]=l.useState(!1),C=async()=>{f(!0);try{const{data:t,error:s}=await N.rpc("build_newsletter_edition",{p_portal_id:o.id,p_mode:"daily"});if(s)throw s;if(!t){m.info("Nenhuma edição criada: não há matérias novas suficientes desde o último envio.");return}m.success("Rascunho montado. Confira antes de publicar."),d(`/admin/newsletter/editions/${t}`)}catch(t){y.error("[NewsletterEditions] build error:",t),m.error(`Falha ao montar: ${(t==null?void 0:t.message)||"erro desconhecido"}`)}finally{f(!1)}},g=async()=>{h(!0);try{let t=N.from("newsletter_editions").select("id, edition_number, title, subtitle, send_status, sent_at, published_at, recipients_count, reading_time, newsletter_id, newsletters!inner(name, slug, portal_id)",{count:"exact"}).eq("newsletters.portal_id",o.id).order("created_at",{ascending:!1}).range(i*p,(i+1)*p-1);n!=="all"&&(t=t.eq("send_status",n));const{data:s,count:a}=await t;v((s||[]).map(j=>({...j,newsletter:j.newsletters||{name:"?",slug:""}}))),_(a||0)}catch(t){y.error(t)}finally{h(!1)}};l.useEffect(()=>{g()},[i,n,o.id]);const S=t=>new Date(t).toLocaleDateString("pt-BR",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"}),z=t=>{const s={draft:{label:"Rascunho",cls:"bg-slate-100 text-slate-600"},sending:{label:"Enviando",cls:"bg-amber-100 text-amber-700 animate-pulse"},sent:{label:"Enviada",cls:"bg-emerald-100 text-emerald-700"},failed:{label:"Falhou",cls:"bg-red-100 text-red-700"}},a=s[t]||s.draft;return e.jsx("span",{className:`px-2.5 py-1 rounded-full text-[10px] font-bold uppercase tracking-wide ${a.cls}`,children:a.label})},r=Math.ceil(b/p);return e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsxs("div",{className:"max-w-5xl mx-auto px-6 py-8",children:[e.jsxs("div",{className:"flex items-center justify-between mb-6",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-xl font-bold text-slate-900 flex items-center gap-2",children:[e.jsx(A,{size:18,className:"text-blue-600"}),"Edições"]}),e.jsx("p",{className:"text-sm text-slate-500 mt-0.5",children:"Histórico de todas as edições de newsletter"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{onClick:g,className:"px-3 py-2 text-sm border border-slate-200 rounded-xl hover:bg-slate-50 transition-colors text-slate-600 flex items-center gap-2",children:[e.jsx(D,{size:14})," Atualizar"]}),e.jsxs("button",{onClick:C,disabled:x,title:"Reúne as matérias publicadas desde o último envio que não estão fora da home. Cria um rascunho, não envia.",className:"px-3 py-2 text-sm border border-slate-200 rounded-xl hover:bg-slate-50 transition-colors text-slate-600 flex items-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed",children:[x?e.jsx(w,{size:14,className:"animate-spin"}):e.jsx(L,{size:14}),x?"Montando…":"Montar diária"]}),e.jsxs(P,{to:"/admin/newsletter/editions/new",className:"px-4 py-2 text-sm bg-blue-600 hover:bg-blue-700 text-white rounded-xl transition-colors flex items-center gap-2",children:[e.jsx(M,{size:14})," Nova edição"]})]})]}),e.jsx("div",{className:"flex gap-2 mb-5",children:[{key:"all",label:"Todas"},{key:"sent",label:"Enviadas"},{key:"draft",label:"Rascunhos"},{key:"failed",label:"Falharam"}].map(t=>e.jsx("button",{onClick:()=>{E(t.key),c(0)},className:`px-3.5 py-1.5 text-xs font-semibold rounded-lg transition-colors ${n===t.key?"bg-blue-600 text-white":"bg-slate-100 text-slate-600 hover:bg-slate-200"}`,children:t.label},t.key))}),e.jsx("div",{className:"bg-white rounded-2xl border border-slate-200/60 shadow-sm overflow-hidden",children:k?e.jsx("div",{className:"flex items-center justify-center py-20",children:e.jsx(w,{className:"w-6 h-6 animate-spin text-slate-300"})}):u.length===0?e.jsxs("div",{className:"text-center py-20 text-slate-400",children:[e.jsx(q,{size:32,className:"mx-auto mb-3 opacity-40"}),e.jsx("p",{className:"text-sm font-medium",children:"Nenhuma edição encontrada"}),e.jsx("p",{className:"text-xs mt-1",children:'Crie a primeira em "Nova edição".'})]}):e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-slate-100 bg-slate-50/50",children:[e.jsx("th",{className:"text-left px-5 py-3 text-[11px] font-bold text-slate-400 uppercase tracking-wide",children:"#"}),e.jsx("th",{className:"text-left px-5 py-3 text-[11px] font-bold text-slate-400 uppercase tracking-wide",children:"Título"}),e.jsx("th",{className:"text-left px-5 py-3 text-[11px] font-bold text-slate-400 uppercase tracking-wide",children:"Newsletter"}),e.jsx("th",{className:"text-left px-5 py-3 text-[11px] font-bold text-slate-400 uppercase tracking-wide",children:"Status"}),e.jsx("th",{className:"text-right px-5 py-3 text-[11px] font-bold text-slate-400 uppercase tracking-wide",children:"Destinatários"}),e.jsx("th",{className:"text-right px-5 py-3 text-[11px] font-bold text-slate-400 uppercase tracking-wide",children:"Enviada em"})]})}),e.jsx("tbody",{className:"divide-y divide-slate-50",children:u.map(t=>{var s;return e.jsxs("tr",{tabIndex:0,role:"link","aria-label":`Abrir edição ${t.edition_number}: ${t.title||"sem título"}`,onClick:()=>d(`/admin/newsletter/editions/${t.id}`),onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),d(`/admin/newsletter/editions/${t.id}`))},className:"hover:bg-slate-50/50 focus:bg-slate-50 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-blue-300 transition-colors cursor-pointer",children:[e.jsx("td",{className:"px-5 py-3.5 text-slate-400 font-mono text-xs",children:t.edition_number}),e.jsxs("td",{className:"px-5 py-3.5",children:[e.jsx("p",{className:"font-medium text-slate-800 truncate max-w-[240px]",children:t.title||"Sem título"}),t.subtitle&&e.jsx("p",{className:"text-[11px] text-slate-400 truncate max-w-[240px]",children:t.subtitle})]}),e.jsx("td",{className:"px-5 py-3.5 text-slate-500 text-xs",children:(s=t.newsletter)==null?void 0:s.name}),e.jsx("td",{className:"px-5 py-3.5",children:z(t.send_status||"draft")}),e.jsx("td",{className:"px-5 py-3.5 text-right text-slate-600",children:t.recipients_count>0?e.jsxs("span",{className:"flex items-center justify-end gap-1",children:[e.jsx(B,{size:11,className:"text-slate-400"})," ",t.recipients_count]}):" -"}),e.jsx("td",{className:"px-5 py-3.5 text-right text-xs text-slate-400",children:t.sent_at?S(t.sent_at):" -"})]},t.id)})})]})}),r>1&&e.jsxs("div",{className:"flex items-center justify-between mt-4",children:[e.jsxs("p",{className:"text-xs text-slate-400",children:[b," edições no total"]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("button",{onClick:()=>c(t=>Math.max(0,t-1)),disabled:i===0,className:"p-2 rounded-lg border border-slate-200 hover:bg-slate-50 disabled:opacity-30 transition-colors",children:e.jsx(F,{size:14})}),e.jsxs("span",{className:"flex items-center text-xs text-slate-500",children:[i+1," / ",r]}),e.jsx("button",{onClick:()=>c(t=>Math.min(r-1,t+1)),disabled:i>=r-1,className:"p-2 rounded-lg border border-slate-200 hover:bg-slate-50 disabled:opacity-30 transition-colors",children:e.jsx(T,{size:14})})]})]})]})})};export{Y as NewsletterEditions,Y 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.