PageSourceSearch

https://www.ubitecglobal.com/assets/WhatsAppCampaigns-6_tMJCys.js

js ubitecglobal.com collected 2026-09-25 03:26:23 UTC 3,958 bytes, 1 lines download raw bytes

1import{b as p,u as h,j as a}from"./query-CkeLs67s.js";import{u as x,i as u,aV as g,h as r,D as j,s as d}from"./index-Cc7TS_A4.js";import{B as N}from"./badge-DPFImF3m.js";import{e as f}from"./react-CG5U65tv.js";import{P as v}from"./plus-DSsydvxg.js";import{C as b}from"./copy-B28OxFuh.js";import{T as w}from"./trash-2-CZUdAD82.js";import"./charts-Dqq2dyU6.js";import"./supabase-C6UFQgq8.js";const y={draft:"Borrador",scheduled:"Programada",sending:"Enviando",sent:"Enviada",cancelled:"Cancelada"},C=s=>s==="sent"?"default":s==="scheduled"||s==="sending"?"secondary":"outline";function T(){const s=f(),{toast:o}=x(),l=p(),{data:n=[],isLoading:i}=h({queryKey:["wa-campaigns"],queryFn:async()=>{const{data:e,error:t}=await d.from("whatsapp_campaigns").select("id, name, status, template_name, scheduled_at, totals, created_at").order("created_at",{ascending:!1});if(t)throw t;return e}}),c=async e=>{const{error:t}=await d.from("whatsapp_campaigns").delete().eq("id",e);if(t){o({title:"No se pudo eliminar",description:t.message,variant:"destructive"});return}l.invalidateQueries({queryKey:["wa-campaigns"]})};return a.jsx(u,{children:a.jsxs("div",{className:"space-y-6",children:[a.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[a.jsxs("div",{children:[a.jsxs("h1",{className:"font-display text-3xl font-bold flex items-center gap-2",children:[a.jsx(g,{className:"h-7 w-7 text-primary"})," Campañas de WhatsApp"]}),a.jsx("p",{className:"text-muted-foreground text-sm mt-1",children:"Envíos masivos con plantillas aprobadas de Meta, programables y con seguimiento."})]}),a.jsxs(r,{onClick:()=>s("/admin/campanas-whatsapp/nueva"),children:[a.jsx(v,{className:"h-4 w-4 mr-2"})," Nueva campaña"]})]}),a.jsx("div",{className:"border border-border rounded-lg overflow-hidden bg-card",children:a.jsxs("table",{className:"w-full text-sm",children:[a.jsx("thead",{className:"bg-muted/50",children:a.jsxs("tr",{className:"text-left text-xs text-muted-foreground uppercase",children:[a.jsx("th",{className:"p-3",children:"Campaña"}),a.jsx("th",{className:"p-3",children:"Estado"}),a.jsx("th",{className:"p-3",children:"Plantilla"}),a.jsx("th",{className:"p-3",children:"Programada"}),a.jsx("th",{className:"p-3 text-right",children:"Enviados"}),a.jsx("th",{className:"p-3 w-24"})]})}),a.jsxs("tbody",{children:[i&&a.jsx("tr",{className:"border-t border-border",children:a.jsx("td",{colSpan:6,className:"p-8 text-center text-muted-foreground",children:"Cargando…"})}),!i&&n.length===0&&a.jsx("tr",{className:"border-t border-border",children:a.jsx("td",{colSpan:6,className:"p-8 text-center text-muted-foreground",children:"Aún no hay campañas."})}),n.map(e=>{var t;return a.jsxs("tr",{className:"border-t border-border hover:bg-muted/30 cursor-pointer",onClick:()=>s(`/admin/campanas-whatsapp/${e.id}`),children:[a.jsx("td",{className:"p-3 font-medium text-primary",children:e.name}),a.jsx("td",{className:"p-3",children:a.jsx(N,{variant:C(e.status),children:y[e.status]||e.status})}),a.jsx("td",{className:"p-3 text-muted-foreground",children:e.template_name||"—"}),a.jsx("td",{className:"p-3 text-muted-foreground text-xs",children:e.scheduled_at?new Date(e.scheduled_at).toLocaleString("es-CR"):"—"}),a.jsx("td",{className:"p-3 text-right",children:((t=e.totals)==null?void 0:t.sent)??0}),a.jsx("td",{className:"p-3",onClick:m=>m.stopPropagation(),children:a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx(r,{size:"icon",variant:"ghost",title:"Seguimiento",onClick:()=>s(`/admin/campanas-whatsapp/${e.id}/seguimiento`),children:a.jsx(j,{className:"h-4 w-4"})}),a.jsx(r,{size:"icon",variant:"ghost",title:"Duplicar",onClick:()=>s(`/admin/campanas-whatsapp/nueva?copiar=${e.id}`),children:a.jsx(b,{className:"h-4 w-4"})}),a.jsx(r,{size:"icon",variant:"ghost",title:"Eliminar",onClick:()=>c(e.id),children:a.jsx(w,{className:"h-4 w-4 text-destructive"})})]})})]},e.id)})]})]})})]})})}export{T 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.