PageSourceSearch

https://laiglesiafiel.com/assets/GlobalNewsletterStatsPage-e2f0b3c5.js

js laiglesiafiel.com collected 2026-10-02 01:36:15 UTC 4,850 bytes, 1 lines download raw bytes

1import{u as S,j as e,L as B,s as D,q as L,cn as E,e3 as T,e4 as R,A,ef as I,dL as M,eg as H,eh as P}from"./vendor-ui-fc56ca80.js";import{i as V,e as _,r as l}from"./vendor-react-f9ccc48d.js";import{a as c}from"./adminNewsletterService-9135de76.js";import{N as q}from"./NewsletterAnalyticsDashboard-b55080a8.js";import{B as g,t as G,v as O,w as U,I as X,y as z,U as F,V as W,W as m,X as x,Y,Z as o,R as t}from"./index-90016d22.js";import{f as Z}from"./vendor-utils-323b9898.js";import"./vendor-firebase-a557f106.js";import"./vendor-charts-9af8b7c0.js";function re(){const{id:r}=V(),u=_(),[i,N]=l.useState(null),[h,w]=l.useState([]),[b,j]=l.useState(!0),[d,v]=l.useState("");l.useEffect(()=>{r&&f()},[r]);const f=async()=>{if(r){j(!0);try{const[s,n]=await Promise.all([c.getGlobalNewsletterById(r),c.getNewsletterRecipientStatus(r)]);N(s),w(n)}catch(s){console.error("Error loading stats:",s),S.error("Error al cargar las estadísticas")}finally{j(!1)}}},p=h.filter(s=>s.email.toLowerCase().includes(d.toLowerCase())||s.name&&s.name.toLowerCase().includes(d.toLowerCase())),y=s=>{switch(s.status){case"feedback_up":return e.jsxs(t,{className:"bg-emerald-600 gap-1",children:[e.jsx(P,{className:"h-3 w-3"})," Útil"]});case"feedback_down":return s.feedbackDetail==="spam"?e.jsxs(t,{variant:"destructive",className:"gap-1",children:[e.jsx(A,{className:"h-3 w-3"})," Spam"]}):s.feedbackDetail==="unsubscribe"?e.jsxs(t,{variant:"secondary",className:"gap-1 bg-orange-100 text-orange-800 hover:bg-orange-200",children:[e.jsx(I,{className:"h-3 w-3"})," Desuscrito"]}):s.feedbackDetail==="auto_spam"?e.jsxs(t,{variant:"outline",className:"gap-1 text-orange-600 border-orange-200 bg-orange-50",children:[e.jsx(M,{className:"h-3 w-3"})," Posible Bot"]}):e.jsxs(t,{variant:"destructive",className:"gap-1",children:[e.jsx(H,{className:"h-3 w-3"})," Voto Negativo"]});case"clicked":return e.jsxs(t,{className:"bg-purple-500 gap-1",children:[e.jsx(R,{className:"h-3 w-3"})," Clic"]});case"opened":return e.jsxs(t,{className:"bg-green-500 gap-1",children:[e.jsx(T,{className:"h-3 w-3"})," Abierto"]});default:return e.jsxs(t,{variant:"secondary",className:"gap-1",children:[e.jsx(E,{className:"h-3 w-3"})," Enviado"]})}};return b?e.jsx("div",{className:"flex h-[60vh] items-center justify-center",children:e.jsx(B,{className:"h-8 w-8 animate-spin text-muted-foreground"})}):i?e.jsxs("div",{className:"container mx-auto p-6 max-w-7xl space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-2",children:[e.jsx(g,{variant:"ghost",size:"icon",onClick:()=>u("/admin/newsletters"),children:e.jsx(D,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"Estadísticas Detalladas"}),e.jsx("p",{className:"text-muted-foreground",children:i.subject})]})]}),e.jsx(q,{stats:i.stats||{},newsletterId:i.id,onRefresh:f,fetchDetails:async s=>{if(s==="feedback")return await c.getNewsletterFeedback(r);const n=await c.getNewsletterEvents(r),C=a=>a==="email.opened"||a==="open",k=a=>a==="email.clicked"||a==="click";return s==="opens"?n.filter(a=>C(a.type)):s==="clicks"?n.filter(a=>k(a.type)):[]}}),e.jsxs(G,{children:[e.jsxs(O,{className:"flex flex-row items-center justify-between space-y-0 pb-4",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-lg font-bold",children:"Destinatarios e Interacciones"}),e.jsxs("p",{className:"text-sm text-muted-foreground mt-1",children:["Lista detallada de las ",h.length," personas que componen la audiencia."]})]}),e.jsxs("div",{className:"relative w-72",children:[e.jsx(L,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(X,{type:"search",placeholder:"Buscar por email o nombre...",className:"pl-8",value:d,onChange:s=>v(s.target.value)})]})]}),e.jsx(z,{children:e.jsx("div",{className:"rounded-md border",children:e.jsxs(F,{children:[e.jsx(W,{children:e.jsxs(m,{children:[e.jsx(x,{children:"Destinatario"}),e.jsx(x,{children:"Estado"}),e.jsx(x,{children:"Última Acción"})]})}),e.jsx(Y,{children:p.length===0?e.jsx(m,{children:e.jsx(o,{colSpan:3,className:"h-24 text-center text-muted-foreground",children:"No se encontraron destinatarios."})}):p.map((s,n)=>e.jsxs(m,{children:[e.jsx(o,{children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"font-medium",children:s.email}),s.name&&e.jsx("span",{className:"text-xs text-muted-foreground",children:s.name})]})}),e.jsx(o,{children:y(s)}),e.jsx(o,{className:"text-sm text-muted-foreground",children:s.timestamp?Z(s.timestamp.toDate(),"dd/MM/yyyy HH:mm:ss"):"-"})]},n))})]})})})]})]}):e.jsxs("div",{className:"container p-6 text-center",children:[e.jsx("h2",{className:"text-xl font-semibold",children:"Newsletter no encontrado"}),e.jsx(g,{onClick:()=>u("/admin/newsletters"),className:"mt-4",children:"Volver al listado"})]})}
1export{re 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.