PageSourceSearch

https://app.thena.ai/assets/BroadcastAnalytics-DB8-zHzV.js

js thena.ai collected 2026-09-28 06:44:48 UTC 14,495 bytes, 5 lines download raw bytes

1import{r as x,j as e,fl as ge,bV as be,cM as P,a as T,fm as ye,ep as ve,fn as je,y as we,fo as pe,ev as Q,u as Ne,B as ke,dE as U,dF as Y,dG as X,ex as Se,f6 as Ce,_,df as _e,c as Re,bp as Z,a6 as Fe,l as J,bT as Ie,bi as Te,eS as ze,dn as Ee,R as Me,fp as Ae,fq as Le,fr as He,fs as Be,ft as Ve,bG as Ge,Y as Ke,b2 as De,dx as Oe,ag as $e,av as qe,fu as We}from"./index-B79jx0QH.js";import{u as Pe,g as Qe,f as Ue}from"./broadcastStore-CkJAO7jo.js";import{T as w}from"./TableHeader-DvZcEEur.js";import{g as Ye}from"./editor-BauqcnB6.js";import{b as Xe,H as Ze,a as Je}from"./hover-card-B1BXbhtP.js";import{f as ee,u as es,g as ss,b as ts,a as as}from"./index-Cv_Vf7U1.js";import{S as rs}from"./skeleton-Cbu7hH40.js";import{u as ls}from"./index-BvkyY9Ua.js";import{T as ns,d as os,b as se,e as is,a as cs,c as te}from"./table-qlTNHZJv.js";import{C as ds}from"./index-D4oK5Z1X.js";(function(){try{var c=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},y=new Error().stack;y&&(c._sentryDebugIds=c._sentryDebugIds||{},c._sentryDebugIds[y]="e9c3bf4f-38da-4d27-af97-359afbf9bbfb",c._sentryDebugIdIdentifier="sentry-dbid-e9c3bf4f-38da-4d27-af97-359afbf9bbfb")}catch{}})();const ms=({height:c,tableColumns:y,table:g,EmptyComponent:p,showTable:R=!0})=>{var n;const k=x.useRef(null),{rows:S}=g.getRowModel(),r=ls({count:S.length,estimateSize:()=>15,getScrollElement:()=>k.current,measureElement:typeof window<"u"&&navigator.userAgent.indexOf("Firefox")===-1?f=>f==null?void 0:f.getBoundingClientRect().height:void 0,overscan:5});return R?g.getRowModel().rows.length===0?e.jsx(p,{}):e.jsx("div",{ref:k,className:"rounded border",style:{overflow:"auto",position:"relative",overscrollBehavior:"none",width:"100%",paddingBottom:"40px",maxHeight:c,zIndex:"unset"}
1,children:e.jsxs(ns,{style:{display:"grid",height:`${r.getTotalSize()}px`,position:"relative",width:"100%"},children:[e.jsx(os,{className:"bg-[var(--color-bg-subtle)] sticky",style:{display:"flex",position:"sticky",top:0,zIndex:"1"},children:e.jsx(se,{style:{width:"100%",background:"var(--color-bg-subtle)"},children:g.getHeaderGroups().map(f=>f.headers.map(d=>e.jsx(is,{style:{width:d.column.getSize(),background:"var(--color-bg-subtle)"},children:d.isPlaceholder?null:ee(d.column.columnDef.header,d.getContext())},d.id)))})}),e.jsx(cs,{style:{display:"flex",position:"sticky",top:0,height:`${r.getTotalSize()}px`},children:(n=r==null?void 0:r.getVirtualItems())!=null&&n.length?r.getVirtualItems().map((f,d)=>{const b=S[f.index];return e.jsx(se,{ref:v=>r==null?void 0:r.measureElement(v),"data-index":f.index,className:"border-[var(--modal-border)] !border-b hover:!bg-[var(--color-bg-subtle)] z-[unset] bg-background",style:{display:"flex",position:"absolute",alignItems:"center",transform:`translateY(${f.start}px)`,width:"100%"},children:b.getVisibleCells().map(v=>e.jsx(te,{className:"min-w-[120px] text-sm",style:{width:v.column.getSize()},children:ee(v.column.columnDef.cell,v.getContext())},v.id))},b.id)}):e.jsx("div",{className:"flex items-center w-full justify-center hover:bg-transparent h-full",children:e.jsx(te,{colSpan:y.length,className:"h-full text-center hover:bg-transparent",children:e.jsx(p,{})})})})]})}):null},us=[{label:"Account name",key:"account_name"},{label:"Channel",key:"name"},{label:"Views",key:"views"},{label:"Reactions",key:"reactions"},{label:"Replies",key:"replies"},{label:"View broadcast",key:"permalink"},{label:"Delivery status",key:"deliveryStatus"}],xs=$e.div`
2  height: calc(100% - 270px);
3  position: relative;
4  width: 100%;
5`;function ks(){var M,A,L,H,B,V,G,K,D,O,$;const{id:c}=ge(),y=be(()=>T().broadcastAnalytics.get(c||"").then(s=>s==null?void 0:s.data),[c],{}),{data:g,isFetched:p,isLoading:R,refetch:k,isRefetching:S}=P({queryKey:["broadcast-analytics",c],queryFn:()=>Qe(c)}),r=x.useMemo(()=>g??y,[g,y]);x.useEffect(()=>{try{p&&T().broadcastAnalytics.put({id:c,data:r})}catch(s){console.error("Error saving broadcast analytics to DB",s)}},[p,r,c]);const{data:n}=P({queryKey:["marketing-campaign-with-id",c],queryFn:()=>Ue(c)}),{campaign_name:f}=n||qe,d=x.useMemo(()=>{var l,m,u,h;const s=[{key:"views",value:(l=r==null?void 0:r.stats)==null?void 0:l.views},{key:"engagement",value:(m=r==null?void 0:r.stats)==null?void 0:m.engagement},{key:"replies",value:(u=r==null?void 0:r.stats)==null?void 0:u.replies},{key:"reaction",value:(h=r==null?void 0:r.stats)==null?void 0:h.reaction}];return[...s.filter(i=>i.key==="reach"),...s.filter(i=>i.key!=="reach")].sort((i,j)=>i.key==="replies"&&j.key==="reaction"?j.value-i.value:i.key==="reaction"&&j.key==="replies"?i.value-j.value:0)},[r]),b=x.useMemo(()=>{const s=(g==null?void 0:g.channelObj)||{},t=[];return Object.keys(s).map(a=>s[a]).filter(a=>a.deliveryStatus==="FAILED").forEach(a=>{t.push(a==null?void 0:a.name)}),{channels:t}},[g]),v=[{key:"accounts sent to",Icon:e.jsx(ye,{className:"h-4 w-4"}),data:((A=(M=n==null?void 0:n.campaign_message)==null?void 0:M.channels)==null?void 0:A.length)||0},{key:"failed",Icon:e.jsx(ve,{className:"h-4 w-4"}),data:((L=b.channels)==null?void 0:L.length)||0},{key:"total views",Icon:e.jsx(je,{className:"h-4 w-4"}),data:(H=d==null?void 0:d.find(s=>s.key==="views"))==null?void 0:H.value},{key:"total reactions",Icon:e.jsx(we,{className:"h-4 w-4"}),data:(B=d==null?void 0:d.find(s=>s.key==="reaction"))==null?void 0:B.value},{key:"replies",Icon:e.jsx(pe,{className:"h-4 w-4"}),data:(V=d==null?void 0:d.find(s=>s.key==="replies"))==null?void 0:V.value}],ae=Q(s=>s.setSelectedCampaignId),re=Q(s=>s.setIsUnsend),le=Ne(),ne=Pe(s=>s.setReadOnly),z=x.useRef(null),[oe,E]=x.useState(0),[ie,ce]=x.useState([]),o=ke(()=>T().relationships.toArray()),C=x.useMemo(()=>[{header:({column:s})=>e.jsx(w,{column:s,title:"Account name"}),accessorKey:"account_name",enableGlobalFilter:!0,enableSortingRemoval:!0,cell:s=>{var a,l,m,u,h,i,j;const t=o==null?void 0:o.find(he=>{var q,W;return he.channel_name===((W=(q=s==null?void 0:s.row)==null?void 0:q.original)==null?void 0:W.name)});return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(U,{className:"h-5 w-5",children:[e.jsx(Y,{sizes:"small",src:((l=(a=t==null?void 0:t.customer_team)==null?void 0:a.icon)==null?void 0:l.image_68)||"",alt:(m=t==null?void 0:t.customer_team)==null?void 0:m.name}),e.jsx(X,{children:((h=(u=t==null?void 0:t.customer_team)==null?void 0:u.name)==null?void 0:h.substring(0,2))??((i=t==null?void 0:t.customer_name)==null?void 0:i.substring(0,2))})]}),((j=t==null?void 0:t.customer_team)==null?void 0:j.name)??(t==null?void 0:t.customer_name)??"-"]})},sortingFn:(s,t)=>{var m,u;const a=o==null?void 0:o.find(h=>{var i;return h.channel_name===((i=s==null?void 0:s.original)==null?void 0:i.name)}),l=o==null?void 0:o.find(h=>{var i;return h.channel_name===((i=t==null?void 0:t.original)==null?void 0:i.name)});return(((m=a==null?void 0:a.customer_team)==null?void 0:m.name)??(a==null?void 0:a.customer_name)??"").localeCompare(((u=l==null?void 0:l.customer_team)==null?void 0:u.name)??(l==null?void 0:l.customer_name)??"")},size:200},{header:({column:s})=>e.jsx(w,{column:s,title:"Channel"}),accessorKey:"name",enableGlobalFilter:!0,enableColumnFilter:!0,sortingFn:"alphanumeric",enableSortingRemoval:!0,cell:s=>{var a,l;const t=o==null?void 0:o.find(m=>{var u,h;return m.channel_name===((h=(u=s==null?void 0:s.row)==null?void 0:u.original)==null?void 0:h.name)});return e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[t!=null&&t.channel_name?(l=(a=s==null?void 0:s.row)==null?void 0:a.original)!=null&&l.is_private?e.jsx(Se,{size:12}):e.jsx(Ce,{size:12}):null,(t==null?void 0:t.channel_name)??"-"]})},size:300},{header:({column:s})=>e.jsx(w,{column:s,title:"Views"}),accessorKey:"views",enableGlobalFilter:!0,enableColumnFilter:!0,enableSortingRemoval:!0},{header:({column:s})=>e.jsx(w,{column:s,title:"Reactions"}),accessorKey:"reactions",enableGlobalFilter:!0,enableColumnFilter:!0,enableSortingRemoval:!0},{header:({column:s})=>e.jsx(w,{column:s,title:"Replies"}),accessorKey:"replies",enableGlobalFilter:!0,enableColumnFilter:!0,enableSortingRemoval:!0},{header:()=>"View broadcast",accessorKey:"permalink",enableGlobalFilter:!0,enableColumnFilter:!0,enableSortingRemoval:!0,cell:s=>e.jsx(_,{variant:"outline",size:"icon",className:"h-7 w-7 flex-shrink-0",onClick:()=>{var t,a;return window.open((a=(t=s==null?void 0:s.row)==null?void 0:t.original)==null?void 0:a.permalink,"_blank")},children:e.jsx(_e,{size:12})})},{header:({column:s})=>e.jsx(w,{column:s,title:"Delivery status"}),accessorKey:"deliveryStatus",enableGlobalFilter:!0,enableColumnFilter:!0,enableSortingRemoval:!0,cell:s=>{var a,l,m,u;const t=(l=(a=s==null?void 0:s.row)==null?void 0:a.original)==null?void 0:l.deliveryStatus;return e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0 text-left",children:[e.jsx("span",{className:Re("text-xs font-medium py-[2px] px-[6px] rounded-lg",t==="SENT"?"text-[var(--color-text-success)] bg-[var(--color-bg-success-muted)]":"text-[var(--color-text-error)] bg-[var(--color-bg-error-muted)]"),children:t==="SENT"?"Successful":"Failed"}),t==="FAILED"&&e.jsx(Z,{tooltipContent:(u=(m=s==null?void 0:s.row)==null?void 0:m.original)==null?void 0:u.errorMessage,children:e.jsx(Fe,{size:12,className:"text-[var(--color-text-error)]"})})]})},size:240}],[o]),de=x.useMemo(()=>(r==null?void 0:r.channelObj)===void 0?C.map(s=>({...s,cell:()=>e.jsx(rs,{className:"w-full h-[14px]"})})):C,[r==null?void 0:r.channelObj,C]),[N,me]=x.useState(""),F=x.useMemo(()=>
5{if(N==="")return Object.values((r==null?void 0:r.channelObj)||[]);const s=o==null?void 0:o.filter(a=>{var l,m;return((l=a==null?void 0:a.customer_name)==null?void 0:l.toLowerCase().includes(N.toLowerCase()))||((m=a==null?void 0:a.channel_name)==null?void 0:m.toLowerCase().includes(N.toLowerCase()))});return Object.values((r==null?void 0:r.channelObj)||[]).filter(a=>s==null?void 0:s.some(l=>l.channel_name===a.name))},[r,o,N]),ue=x.useMemo(()=>F.map(t=>{const a=o==null?void 0:o.find(l=>l.channel_name===t.name);return{...t,account_name:a==null?void 0:a.customer_name,deliveryStatus:t.deliveryStatus==="SENT"?"Successful":"Failed"}}),[o,F]),xe=es({data:F,columns:de,state:{sorting:ie},onSortingChange:ce,enableSortingRemoval:!0,getCoreRowModel:ss(),getFilteredRowModel:ts(),getSortedRowModel:as()}),I=R&&(!y||J.isEmpty(y));x.useEffect(()=>{if(I)return;const s=z.current;if(typeof ResizeObserver>"u")return;const t=new ResizeObserver(a=>{for(const l of a)l.contentRect.height&&E(l.contentRect.height)});return s&&(E(s.clientHeight),t.observe(s)),()=>{s&&t.unobserve(s)}},[I]);const fe=()=>e.jsxs("div",{className:"flex items-center justify-center flex-col w-full border border-[var(--modal-border)] py-[60px] px-[250px] rounded-lg",children:[e.jsx(We,{size:24}),e.jsx("span",{className:"text-center h-full w-[560px] font-medium text-lg",children:"No results found"}),e.jsx("span",{className:"text-center h-full w-[560px] text-[var(--color-icon-muted)] font-normal text-sm",children:"Adjust your search to see results."})]});return I?e.jsx("div",{className:"w-full h-full px-6 py-6",children:e.jsxs("div",{className:"text-[var(--color-text-disabled)] text-sm flex flex-col w-full items-center justify-center h-[600px] gap-4",children:[e.jsx(Ie,{className:"!h-14"}),"Loading your data..."]})}):e.jsxs("div",{className:"w-full h-full px-6 py-6",children:[e.jsxs("div",{className:"flex items-center justify-between space-y-2",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-medium tracking-tight",children:f}),e.jsxs("div",{className:"flex items-center justify-start gap-2",children:[e.jsxs("div",{className:"flex items-center justify-start gap-1",children:[e.jsxs(U,{className:"w-5 h-5",children:[e.jsx(Y,{src:(G=n==null?void 0:n.createdBy)==null?void 0:G.image,alt:(K=n==null?void 0:n.createdBy)==null?void 0:K.full_name,style:{flexShrink:0}}),e.jsx(X,{children:e.jsx(Te,{})})]}),e.jsx("span",{className:" text-sm",children:(D=n==null?void 0:n.createdBy)==null?void 0:D.full_name})]}),e.jsxs("span",{className:"text-left text-[var(--color-text-disabled)] text-sm",children:["Sent On:"," ",e.jsx(Z,{tooltipContent:ze(),children:(O=n==null?void 0:n.campaign_message)!=null&&O.sent_on?Ee(new Date(($=n==null?void 0:n.campaign_message)==null?void 0:$.sent_on),"MMM do, yyyy hh:mm a"):""})]})]})]}),e.jsx("div",{className:"flex items-center justify-end",children:e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(_,{variant:"outline",size:"icon",className:"h-7 w-7",onClick:()=>k(),children:e.jsx(Me,{size:20,className:`w-4 h-4 ${S?"animate-spin":"animate-none"}`})}),e.jsx(_,{size:"sm",className:"h-7",onClick:()=>Ye(c,!0,ne,re,ae,le),children:"View broadcast"})]})})]}),e.jsxs("div",{className:"border border-transparent rounded-lg flex flex-col gap-1 mt-6 justify-start items-start h-full",children:[e.jsx("div",{className:"flex gap-4",children:v.map(s=>{var t,a;return e.jsxs(Ae,{className:"w-[235px]",children:[e.jsx(Le,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:e.jsxs(He,{className:"text-sm font-medium flex gap-1 items-center",children:[s.Icon," ",J.capitalize(s.key)]})}),e.jsx(Be,{children:e.jsxs("div",{className:"text-2xl font-bold flex justify-start items-center gap-2 min-h-7",children:[s.data,s.key==="failed"&&((t=b==null?void 0:b.channels)==null?void 0:t.length)>0?e.jsxs(Xe,{children:[e.jsx(Ze,{asChild:!0,children:e.jsxs(_,{className:"rounded-[6px] h-5 px-2 bg-color-bg-error-muted text-color-text-error hover:bg-color-bg-error-muted hover:text-color-text-error text-xs",children:[e.jsx(Ve,{size:12,className:"mr-1",strokeWidth:2.5}),"View failed"]})}),e.jsx(Je,{className:"w-[210px] py-[6px] px-[12px]",children:e.jsx("div",{className:"flex flex-col",children:(a=b==null?void 0:b.channels)==null?void 0:a.map(l
5=>e.jsxs("div",{className:"text-xs font-medium line-clamp-1 w-full",children:["#",l]}))})})]}):null]})})]})})}),e.jsxs("div",{className:"flex items-center gap-2 min-w-max justify-between w-full relative",children:[e.jsx(Ge,{size:16,className:"pointer-events-none ml-2 absolute"}),e.jsx(Ke,{placeholder:"Search accounts and channels",className:"w-[250px] h-[28px] my-4 pl-8",value:N,onChange:s=>me(s.target.value)}),e.jsx(ds,{headers:us,data:ue,filename:`${f} - broadcast analytics`,children:e.jsx(De,{Icon:Oe,tooltip:"Download"})})]}),e.jsx(xs,{ref:z,children:e.jsx(ms,{height:oe,tableColumns:C,table:xe,EmptyComponent:fe,showTable:(r==null?void 0:r.channelObj)!==void 0})})]})]})}export{ks 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.