PageSourceSearch

https://app.thena.ai/assets/AudienceList-DEogx-rs.js

js thena.ai collected 2026-09-28 06:44:43 UTC 11,261 bytes, 5 lines download raw bytes

1import{N as b,u as R,ev as $,P as J,j as e,D as I,n as O,a0 as T,o as z,a4 as K,a3 as W,I as D,J as _,K as S,Y as q,aN as X,a7 as v,_ as g,af as j,T as Z,c$ as P,a as p,A as E,a$ as ee,a5 as se,eq as V,r as u,dy as ae,l as A,ag as te,B as ne,eF as k,av as le,dE as ie,dF as re,dG as ce,ay as oe,cM as de,bG as me,at as U,eG as ue,d0 as he}from"./index-B79jx0QH.js";import{u as xe,g as pe,b as ge,a as je}from"./index-Cv_Vf7U1.js";import{D as ye,a as fe,b as be,c as B}from"./dropdown-menu-DOfBs0uf.js";import{R as G,a as N}from"./radio-group-tL4QcbYU.js";import{t as ve}from"./zod-Due6eArZ.js";import{B as Ne}from"./BroadcastList-6Q268lXo.js";import{u as Ce}from"./useDivHeight-DkMCLk9V.js";import{B as De}from"./bluebird-Ukx1d9HB.js";import{c as _e}from"./useCRMFilterInit-gNct4GR-.js";import"./index-DnQZnmdU.js";import"./index-Zo-lXBHX.js";import"./index-BvkyY9Ua.js";import"./table-qlTNHZJv.js";import"./crm-B4UEAkVM.js";(function(){try{var i=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},t=new Error().stack;t&&(i._sentryDebugIds=i._sentryDebugIds||{},i._sentryDebugIds[t]="707d5e9a-6b6e-4348-85e9-bdc4805eda2b",i._sentryDebugIdIdentifier="sentry-dbid-707d5e9a-6b6e-4348-85e9-bdc4805eda2b")}catch{}})();const Se=b.object({name:b.string().min(1,{message:"A name is required for this list"}),type:b.enum(["static","dynamic"],{required_error:"You need to select a list type."}),scope:b.enum(["USER","GLOBAL"],{required_error:"You need to select a scope."})});function Ae({open:i,setOpen:t}){const n=R(),{setQueryMap:c,setRowSelection:d}=$(),r=J({defaultValues:{name:"",type:"dynamic",scope:"GLOBAL"},resolver:ve(Se)}),m=a=>{c({}),d&&d({}),n("/slack-broadcasting/audience/create",{state:a}),j("manage_audience_create",{action:"save"})};return e.jsx(I,{open:i,onOpenChange:()=>{r.reset(),t(!1)},children:e.jsxs(O,{className:"bg-[var(--modal-bg)]",children:[e.jsxs(T,{children:[e.jsx(z,{children:e.jsx("p",{children:"Create new audience list"})}),e.jsx(K,{children:"Create a new list of accounts to send broadcasts to"})]}),e.jsx("div",{className:"flex flex-col gap-4",children:e.jsx("div",{children:e.jsx(W,{...r,children:e.jsxs("form",{onSubmit:r.handleSubmit(m),children:[e.jsxs("label",{className:"text-sm font-medium",htmlFor:"audience-list-name",children:["Name ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx(D,{control:r.control,name:"name",render:({field:a})=>e.jsxs(_,{children:[e.jsx(S,{children:e.jsx(q,{...a,onChange:a.onChange,value:a.value,className:"mt-2",placeholder:"Give your list a name"})}),e.jsx(X,{})]})}),e.jsxs("div",{children:[e.jsxs("h3",{className:"text-sm font-medium mb-4 mt-8",children:["Select list type ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx(D,{control:r.control,name:"type",render:({field:a})=>e.jsx(_,{children:e.jsx(S,{children:e.jsxs(G,{defaultValue:a.value,className:"gap-4",onValueChange:a.onChange,children:[e.jsxs("div",{className:"flex items-start space-x-2 cursor-pointer",children:[e.jsx(N,{value:"dynamic",className:"mt-[3px] shrink-0",id:"dynamic"}),e.jsxs(v,{htmlFor:"dynamic",children:[e.jsx("h3",{className:"text-sm font-medium color-text-color",children:"Dynamic list"}),e.jsx("p",{className:"text-sm font-regular text-color-icon-muted",children:"Dynamic list automatically updates over time. Accounts are added or removed as filter values change."})]})]}),e.jsxs("div",{className:"flex items-start space-x-2 cursor-pointer",children:[e.jsx(N,{className:"mt-[3px] shrink-0",value:"static",id:"static"}),e.jsxs(v,{htmlFor:"static",children:[e.jsx("h3",{className:"text-sm font-medium color-text-color",children:"Static list"}),e.jsx("p",{className:"text-sm font-regular text-color-icon-muted",children:"Static list does not automatically update over time. Accounts are added or removed manually."})]})]})]})})})}),e.jsx("h3",{className:"text-sm font-medium mb-4 mt-8",children:"Select access"}),e.jsx(D,{control:r.control,name:"scope",render:({field:a})=>e.jsx(_,{children:e.jsx(S,{children:e.jsxs(G,{defaultValue:a.value,className:"gap-4",onValueChange:a.onChange,children:[e.jsxs("div",{className:"flex items-start space-x-2",children:[e.jsx(N,{value:"USER",className:"mt-[3px] shrink-0",i
1d:"USER"}),e.jsx(v,{htmlFor:"USER",children:e.jsx("h3",{className:"text-sm font-medium color-text-color",children:"Me"})})]}),e.jsxs("div",{className:"flex items-start space-x-2",children:[e.jsx(N,{className:"mt-[3px] shrink-0",value:"GLOBAL",id:"GLOBAL"}),e.jsx(v,{htmlFor:"GLOBAL",children:e.jsx("h3",{className:"text-sm font-medium color-text-color",children:"Everyone"})})]})]})})})}),e.jsxs("div",{className:"flex justify-end gap-4 mt-5",children:[e.jsx(g,{type:"button",variant:"outline",onClick:()=>{r.reset(),t(!1),j("manage_audience_create",{action:"cancel"})},className:"h-9 bg-[var(--modal-bg)] hover:bg-[var(--color-label-bg)]",children:"Cancel"}),e.jsx(g,{type:"submit",className:"h-9",children:"Create"})]})]})]})})})})]})})}const Le=({open:i,setOpen:t,id:n})=>{const c=Z({mutationFn:async r=>{P(r)},onMutate:async r=>{const m=await p().views.get(r??"");return await p().views.delete(r),t(!1),{audienceList:m}},onSuccess:async()=>{E("Audience list deleted successfully")},onError:async(r,m,a)=>{E.error("Error deleting audience list");const o=a==null?void 0:a.audienceList;o&&await p().views.put(o)}}),d=()=>{c.mutate(n)};return e.jsxs(I,{open:i,onOpenChange:()=>{t(!1)},children:[e.jsx(ee,{asChild:!0}),e.jsxs(O,{className:"bg-modal-bg",children:[e.jsxs(T,{children:[e.jsx(z,{children:"Delete audience list"}),e.jsx(K,{children:"Are you sure you want to delete this audience list?"})]}),e.jsxs(se,{children:[e.jsx(g,{variant:"outline",onClick:()=>t(!1),className:"bg-[var(--modal-bg)] hover:bg-[var(--color-label-bg)]",children:"Cancel"}),e.jsx(g,{onClick:d,children:"Delete"})]})]})]})},we=()=>{const{channels:i,relationships:t}=V();return u.useMemo(()=>i==null?void 0:i.map(c=>{const d=t.find(r=>r.channel_id===c.id);return{...c,customer_relationship:d||null}}).filter(c=>c.customer_relationship&&c.customer_relationship.is_thena_setup),[i,t])},Fe=(i,t)=>{const n=u.useRef(null),[c,d]=u.useState([]);return u.useEffect(()=>{var m;n!=null&&n.current&&((m=n==null?void 0:n.current)==null||m.cancel());const r=[];
1return Object.keys(i).forEach(a=>{const o=i[a];if(o.values.length===0)return;let h;o.indexed_key.includes("crm_")?h=_e.table("crmRelations").where(o.indexed_key).anyOf(o.values).primaryKeys():h=p().relationships.where(ae(a)).anyOf(o.values).primaryKeys(),r.push(h)}),n.current=De.all(r).then(a=>{let o=A.intersection(...a);o=A.uniq(o);const h=t==null?void 0:t.filter(y=>o.includes(y.customer_relationship._id));d(h)}),()=>{var a;n!=null&&n.current&&((a=n==null?void 0:n.current)==null||a.cancel())}},[i,t]),c},Me=({queryMap:i,type:t,staticListLength:n})=>{const c=we(),d=Fe(i,c);return e.jsx("div",{children:t==="BROADCAST_LIST"?n:d.length})},Ee=te.div`
2  height: calc(100% - 160px);
3  position: relative;
4  width: 100%;
5`,ke=(i,t,n)=>e.jsxs("div",{className:"flex items-center justify-center flex-col w-full gap-4 border border-[var(--modal-border)] py-[60px] px-[250px] rounded-lg text-[var(--color-icon-muted)] mt-4",children:[e.jsx(ue,{size:40}),e.jsx("h4",{className:"max-w-[428px] text-center",children:"You have no audience list."}),e.jsxs(g,{size:"sm",className:"flex items-center gap-1 h-8",onClick:()=>i(!0),disabled:t||n,children:[e.jsx(U,{size:16}),e.jsx("span",{children:"New audience list"})]})]});function Je(){const[i,t]=u.useState(!1),[n,c]=u.useState(!1),[d,r]=u.useState(""),m=R(),a=ne(()=>p().webUsers.toArray(),[],[]),{audienceList:o}=V(),h=u.useMemo(()=>[{header:"List name",accessorKey:"name",enableGlobalFilter:!0,cell:({row:s})=>e.jsx("button",{className:"text-left",onClick:()=>k(s.original.additionalPrefs,s.original._id,s.original.name,s.original.type,s.original.scope,m,!1),children:s.original.name})},{header:"Type",accessorKey:"type",enableGlobalFilter:!0,cell:({row:s})=>e.jsx("div",{children:s.original.type==="BROADCAST_LIST"?"Static":"Dynamic"}),size:200},{header:"Access",accessorKey:"scope",enableGlobalFilter:!0,cell:({row:s})=>e.jsx("div",{children:s.original.scope==="GLOBAL"?"Everyone":"Me"}),size:200},{header:"Accounts",accessorKey:"channels",enableGlobalFilter:!0,cell:({row:s})=>{var M;const{additionalPrefs:l}=s.original,C=(l==null?void 0:l.queryMap)||le,f=((M=l==null?void 0:l.relationshipList)==null?void 0:M.length)||0;return e.jsx(Me,{queryMap:C,type:s.original.type,staticListLength:f})},size:200},{header:"Created by",accessorKey:"created_by",enableGlobalFilter:!0,cell:({row:s})=>{const l=a.find(C=>{var f;return C._id===((f=s==null?void 0:s.original)==null?void 0:f.createdBy)});return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(ie,{className:"w-5 h-5",children:[e.jsx(re,{src:l==null?void 0:l.user_image,alt:(l==null?void 0:l.displayName)??(l==null?void 0:l.name)}),e.jsx(ce,{children:(l==null?void 0:l.displayName.charAt(0))??(l==null?void 0:l.name.charAt(0))})]}),e.jsx("span",{className:"line-clamp-1",children:A.truncate(l==null?void 0:l.name,{length:15})})]})},size:250},{header:"",id:"actions",cell:({row:s})=>e.jsx("div",{className:"flex gap-2 items-center justify-start",children:e.jsxs(ye,{children:[e.jsx(fe,{children:e.jsx(oe,{size:16})}),e.jsxs(be,{className:"min-w-[80px]",children:[e.jsx(B,{onClick:()=>{k(s.original.additionalPrefs,s.original._id,s.original.name,s.original.type,s.original.scope,m,!1),j("manage_audience_action",{action:"edit"})},children:"Edit"}),e.jsx(B,{onClick:()=>{r(s.original._id),c(!0),j("manage_audience_action",{action:"delete"})},children:"Delete"})]})]})}),size:100}],[a]),y=xe({data:o??[],columns:h,getCoreRowModel:pe(),getFilteredRowModel:ge(),getSortedRowModel:je()}),Y=s=>{y.setGlobalFilter(s.target.value),j("manage_audience_action",{action:"search"})},{data:x,isLoading:L,isFetching:w,refetch:Be,isStale:F}=de({queryKey:["fetch-audience-list"],queryFn:he,staleTime:500}),{height:Q,elementRef:H}=Ce();return u.useEffect(()=>{if(Array.isArray(x)&&(x==null?void 0:x.length)>0&&!F)try{p().views.bulkPut(x)}catch(s){console.error("Error adding audience list to DB",s)}},[x,F]),e.jsxs(e.Fragment,{children:[e.jsx(Le,{open:n,setOpen:c,id:d}),e.jsxs("div",{className:"main-layout h-full w-full overflow-auto",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"Manage audiences"}),e.jsx("p",{className:"text-sm font-regular text-[var(--color-icon-muted)]",children:"Manage all your audience list at one place"})]}),e.jsxs("div",{className:"flex justify-between items-center w-full mt-4",children:[e.jsx("div",{className:"flex gap-2",children:e.jsxs("div",{className:"flex items-center justify-start gap-2 relative",children:[e.jsx(me,{size:16,className:"absolute pointer-events-none ml-2"}),e.jsx(q,{placeholder:"Search audience lists",className:"pl-8 w-[250px] h-[28px]",onChange:Y})]})}),e.jsxs(g,{className:"flex items-center gap-1 h-8",size:"sm",onClick:()=>t(!0),disabled:L||w,children:[e.jsx(U,{size:16}),"New audience list"]})]}),e.jsx(Ee,{ref:H,className:"mt-4",children:e.jsx(Ne,{height:Q,tableColumns:h,table:y,EmptyComponent:()=>ke(t,L,w),showTable:o!==void 0})})]}),e.jsx(Ae,{open:i,setOpen:t})]})}
5export{Je 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.