PageSourceSearch

https://platform.cequens.com/assets/ChannelsEmailPage-D94OHito.js

js cequens.com collected 2026-10-02 05:35:22 UTC 15,767 bytes, 1 lines download raw bytes

1import{l as le,u as xe,r as l,j as e}from"./vendor-react-BXs1OprT.js";import{ac as he,ab as K,aK as _,b3 as ue,a5 as M,bg as je,L as P,R as pe,ax as ge,E as Y,ay as fe,T as q,C as Ne,t,aj as Q}from"./vendor-ui-BRcYFyVA.js";import{ae as be,de as ve,eo as ye,ep as we,eq as Ce,ao as De,B as i,n as U,O as v,ag as y,ah as w,d0 as Ee,y as F,R as g,Q as C,Y as Se,aG as ke,D as X,f as Z,g as $,h as W,i as J,j as ee,L as se,k as ae,l as ne}from"./index-CuGE_ghf.js";import{P as V}from"./PermissionGate-Dfiuhl3V.js";import{T as Re,a as Ae,b as ie,c as D,d as Te,e as E}from"./table-Dy5io_wv.js";import{P as Pe}from"./page-heading-e7cQaNMg.js";import"./vendor-lib-D0CMuov3.js";import"./use-permission-BP9_roX-.js";const Fe={initial:{opacity:0,y:20},animate:{opacity:1,y:0,transition:{duration:.3}},exit:{opacity:0,y:-20}},Ve={initial:{opacity:0,x:10},animate:{opacity:1,x:0,transition:{duration:.2}},exit:{opacity:0,x:-10,transition:{duration:.1}}},Le=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{1,}))$/,Me=/^[a-z0-9]+([-.]{ 1}[a-z0-9]+)*\.[a-z]{2,6}$/i;function ze({record:s,index:f}){const{t:c}=le(),[r,d]=l.useState(null),o=(m,S)=>{navigator.clipboard.writeText(m),d(S),setTimeout(()=>d(null),2e3),t.success(c("channels.email.copiedToClipboard"))};return e.jsxs("div",{className:"bg-muted/30 space-y-2 rounded-lg border border-border p-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(g,{variant:"outline",className:"h-5 font-mono text-[10px]",children:s.type||"CNAME"}),e.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:c("channels.email.dnsRecord",{index:f+1})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{children:[e.jsx("p",{className:"mb-0.5 text-[10px] font-medium uppercase tracking-wider text-muted-foreground",children:c("channels.email.dnsName")}),e.jsxs("div",{className:"flex rounded border border-border bg-background",children:[e.jsx("code",{className:"flex-1 overflow-x-auto whitespace-nowrap p-2 font-mono text-xs text-foreground",children:s.name||"---"}),e.jsx(i,{variant:"ghost",size:"sm",className:"h-auto rounded-s-none border-s px-2.5 py-1",onClick:()=>o(s.name,"name"),children:r==="name"?e.jsx(M,{className:"h-3 w-3 text-green-600"}):e.jsx(Q,{className:"h-3 w-3"})})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"mb-0.5 text-[10px] font-medium uppercase tracking-wider text-muted-foreground",children:c("channels.email.dnsValue")}),e.jsxs("div",{className:"flex rounded border border-border bg-background",children:[e.jsx("code",{className:"flex-1 overflow-x-auto whitespace-nowrap p-2 font-mono text-xs text-foreground",children:s.value||"---"}),e.jsx(i,{variant:"ghost",size:"sm",className:"h-auto rounded-s-none border-s px-2.5 py-1",onClick:()=>o(s.value,"value"),children:r==="value"?e.jsx(M,{className:"h-3 w-3 text-green-600"}):e.jsx(Q,{className:"h-3 w-3"})})]})]})]})]})}const L=["admin","contributor","support"];function qe(){const{t:s}=le(),f=xe(),c=be(),{data:r,isLoading:d}=ve(),o=ye(),m=we(),S=Ce(),[n,te]=l.useState(1),[re,x]=l.useState(!1),[ce,k]=l.useState(!1),[z,I]=l.useState(null),[h,N]=l.useState(""),[u,G]=l.useState(""),[j,H]=l.useState(null),R=l.useMemo(()=>(r||[]).filter(a=>a.identityTypeId===1),[r]),A=l.useMemo(()=>(r||[]).filter(a=>a.identityTypeId===2),[r]),b=n===1?R:A,oe=b.filter(a=>a.isVerified).length,O=async()=>{if(!Le.test(h)){t.error(s("channels.email.invalidEmail","Please enter a valid email address"));return}try{await o.mutateAsync({email:h.trim()}),t.success(s("channels.email.emailCreated","Email sender created. Please check your inbox for the verification email.")),N(""),x(!1)}catch(a){(a&&typeof a=="object"&&"status"in a?a.status:null)===400?t.error(s("channels.email.emailExists","Email identity already exists and is verified")):t.error(s("channels.email.createError","Failed to create email sender"))}},B=async()=>{if(!Me.test(u)){t.error(s("channels.email.invalidDomain","Please enter a valid domain name"));return}try{const a=await m.mutateAsync({domain:u.trim()});H(a.dnsRecords||[]),t.success(s("channels.email.domainCreated","Domain registered. Please configure your DNS records."))}catch{t.error(s("channels.email.domainCreateError","Failed to register domain"))}},me=async a=>{I(a);try{await S.mutateAsync(a),t.success(s("channels.email.resendSuccess","Verification email sent successfully"))}catch{t.error(s("channels.email.resendError","Failed to resend verification email"))}finally{I(null)}},T=()=>{k(!1),G(""),H(null)},de=[{value:1,label:s("channels.email.singleEmail","Single Email"),count:R.length},{value:2,label:s("channels.email.domain","Domain"),count:A.length}];return e.jsxs(De,{isLoading:d,children:[e.jsx("div",{className:"mb-2 flex items-center gap-3",children:e.jsxs(i,{variant:"ghost",size:"sm",onClick:()=>f("/channels"),children:[e.jsx(he,{className:"me-1 h-4 w-4 rtl:rotate-180"}),s("channels.backToChannels","Channels")]})}),e.jsx("div",{className:"mb-6",children:e.jsx(Pe,{title:s("channels.email.title","Email Channel"),description:s("channels.email.description","Manage your email senders and domain verification")})}),!d&&e.jsxs(U.div,{variants:Fe,initial:"initial",animate:"animate",exit:"exit",className:"flex gap-4",children:[e.jsx("div",{className:"min-w-0 flex-1 space-y-4",children:e.jsxs(v,{children:[e.jsxs(y,{className:"pb-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(K,{className:"h-5 w-5 text-primary"}),e.jsx(w,{children:s("channels.email.senders","Email Senders")})]}),e.jsx(V,{permission:"configure-channel",legacyRoles:L,children:e.jsxs(i,{size:"sm",onClick:()=>n===1?x(!0):k(!0),children:[e.jsx(_,{className:"me-1 h-4 w-4"}),n===1?s("channels.email.createSender","Create Sender"):s("channels.email.createDomain","Register Domain")]})})]}),e.jsx(Ee,{children:s("channels.email.sendersDesc","Manage your email sender identities and domain configurations")}),e.jsx("div",{className:"bg-muted/50 mt-3 flex w-fit gap-1 rounded-lg p-1",children:de.map(a=>e.jsxs("button",{onClick:()=>
1te(a.value),className:F("flex items-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium transition-all",n===a.value?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:[a.label,e.jsx(g,{variant:"secondary",className:F("h-4 min-w-[18px] justify-center px-1.5 text-[10px]",n===a.value?"bg-primary/10 text-primary":""),children:a.count})]},a.value))})]}),e.jsx(C,{className:"p-0",children:e.jsx(Se,{mode:"wait",children:e.jsx(U.div,{variants:Ve,initial:"initial",animate:"animate",exit:"exit",children:b.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center space-y-4 px-6 py-12",children:[e.jsx("div",{className:F("flex h-16 w-16 items-center justify-center rounded-full",n===1?"bg-amber-500/10":"bg-blue-500/10"),children:n===1?e.jsx(K,{className:"h-8 w-8 text-amber-600"}):e.jsx(ue,{className:"h-8 w-8 text-blue-600"})}),e.jsxs("div",{className:"space-y-1.5 text-center",children:[e.jsx("h3",{className:"text-base font-semibold",children:n===1?s("channels.email.noEmail
1s","No Email Senders"):s("channels.email.noDomains","No Domains")}),e.jsx("p",{className:"max-w-sm text-sm text-muted-foreground",children:n===1?s("channels.email.noEmailsDesc","Create a new email sender to start sending emails from your verified address."):s("channels.email.noDomainsDesc","Register a domain to send emails from any address on your domain.")})]}),e.jsx(V,{permission:"configure-channel",legacyRoles:L,children:e.jsxs(i,{onClick:()=>n===1?x(!0):k(!0),children:[e.jsx(_,{className:"me-1.5 h-4 w-4"}),n===1?s("channels.email.createSender","Create Sender"):s("channels.email.createDomain","Register Domain")]})})]}):e.jsxs(Re,{children:[e.jsx(Ae,{children:e.jsxs(ie,{className:"bg-muted/50",children:[e.jsx(D,{className:"text-xs",children:n===1?s("channels.email.colFromEmail","From Email"):s("channels.email.colDomain","Domain")}),e.jsx(D,{className:"text-xs",children:s("channels.email.colCreatedAt","Created at")}),e.jsx(D,{className:"text-xs",children:s("channels.email.colStatus","Status")}),n===1&&e.jsx(D,{className:"text-xs",children:s("channels.email.colActions","")})]})}),e.jsx(Te,{children:b.map(a=>e.jsxs(ie,{children:[e.jsx(E,{className:"font-medium",children:a.identity}),e.jsx(E,{className:"text-muted-foreground",children:a.createdAt?new Date(a.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric"}):"—"}),e.jsx(E,{children:a.isVerified?e.jsxs(g,{variant:"outline",className:"gap-1 border-green-500/20 bg-green-500/10 text-green-700",children:[e.jsx(M,{className:"h-3 w-3"}),s("channels.email.verified","Verified")]}):e.jsxs(g,{variant:"outline",className:"gap-1 border-amber-500/20 bg-amber-500/10 text-amber-700",children:[e.jsx(je,{className:"h-3 w-3"}),s("channels.email.notVerified","Not Verified")]})}),n===1&&e.jsx(E,{children:!a.isVerified&&e.jsx(V,{permission:"configure-channel",legacyRoles:L,children:e.jsxs(i,{variant:"ghost",size:"sm",className:"h-7 text-xs",disabled:z===a.id,onClick:()=>me(a.id),children:[z===a.id?e.jsx(P,{className:"me-1 h-3 w-3 animate-spin"}):e.jsx(pe,{className:"me-1 h-3 w-3"}),s("channels.email.resendEmail","Resend Email")]})})})]},a.id))})]})},n)})})]})}),e.jsxs("div",{className:"w-1/3 min-w-[300px] max-w-[380px] space-y-4",children:[e.jsxs(v,{children:[e.jsx(y,{children:e.jsx(w,{className:"text-sm",children:s("channels.email.statusSummary","Status Summary")}
1)}),e.jsxs(C,{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:s("channels.email.totalSenders","Total Senders")}),e.jsx("span",{className:"text-sm font-semibold",children:R.length})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:s("channels.email.totalDomains","Total Domains")}),e.jsx("span",{className:"text-sm font-semibold",children:A.length})]}),e.jsx(ke,{}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:s("channels.email.verifiedSenders","Verified")}),e.jsxs(g,{variant:"outline",className:"border-green-500/20 bg-green-500/10 text-green-700",children:[oe," / ",b.length]})]})]})]}),e.jsxs(v,{children:[e.jsx(y,{children:e.jsx(w,{className:"text-sm",children:s("channels.email.quickActions","Quick Actions")})}),e.jsx(C,{className:"space-y-2",children:e.jsxs("div",{onClick:()=>f("/broadcast/campaigns/builder/new",{state:{channel:"email"}}),className:"hover:bg-muted/50 flex cursor-pointer items-center justify-between rounded-lg border border-border p-3 transition-colors",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(ge,{className:"h-4 w-4"}),e.jsx("span",{className:"text-sm font-medium",children:s("channels.email.sendCampaign","Send Email Campaign")})]}),e.jsx(Y,{className:"h-3.5 w-3.5 text-muted-foreground"})]})})]}),e.jsxs(v,{children:[e.jsx(y,{children:e.jsx(w,{className:"text-sm",children:s("channels.email.resources","Resources")})}),e.jsx(C,{className:"space-y-2",children:[{title:s("channels.email.apiDocs","Email API Documentation"),icon:e.jsx(fe,{className:"h-4 w-4"}),url:c.productUrls?.emailProductUrl},{title:s("channels.email.bestPractices","Email Authentication Guide"),icon:e.jsx(q,{className:"h-4 w-4"}),url:"https://support.google.com/a/answer/81126"}].map((a,p)=>e.jsxs("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"hover:bg-muted/50 flex cursor-pointer items-center justify-between rounded-lg border border-border p-3 transition-colors",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[a.icon,e.jsx("span",{className:"text-sm font-medium",children:a.title})]}),e.jsx(Y,{className:"h-3.5 w-3.5 text-muted-foreground"})]},p))})]})]})]}),e.jsx(X,{open:re,onOpenChange:a=>{x(a),a||N("")},children:e.jsxs(Z,{className:"sm:max-w-[460px]",children:[e.jsxs($,{children:[e.jsx(W,{children:s("channels.email.createSender","Create New Sender")}),e.jsx(J,{children:s("channels.email.createSenderDesc","Enter your email address. A verification email will be sent to confirm ownership.")})]}),e.jsx(ee,{children:e.jsxs("div",{className:"grid gap-2",children:[e.jsx(se,{htmlFor:"new-email",children:s("channels.email.fromEmail","From Email")}),e.jsx(ae,{id:"new-email",type:"email",value:h,onChange:a=>N(a.target.value),placeholder:"[email protected]",autoFocus:!0,onKeyDown:a=>{a.key==="Enter"&&h.trim()&&O()}})]})}),e.jsxs(ne,{children:[e.jsx(i,{variant:"outline",onClick:()=>{x(!1),N("")},children:s("common.cancel","Cancel")}),e.jsx(i,{onClick:O,disabled:!h.trim()||o.isPending,children:o.isPending?e.jsxs(e.Fragment,{children:[e.jsx(P,{className:"me-1.5 h-4 w-4 animate-spin"}),s("common.creating","Creating...")]}):s("channels.email.createSender","Create New Sender")})]})]})}),e.jsx(X,{open:ce,onOpenChange:T,children:e.jsxs(Z,{className:"flex max-h-[85vh] flex-col sm:max-w-[500px]",children:[e.jsxs($,{children:[e.jsx(W,{children:s("channels.email.domainRegistration","Domain Registration")}),e.jsx(J,{children:j?s("channels.email.dnsRecordsDesc","Copy these DNS records and publish them to your domain's DNS provider."):s("channels.email.domainRegDesc","Register your domain to enable DKIM authentication for email delivery.")})]}),e.jsxs(ee,{className:"min-h-0 flex-1 space-y-4 overflow-y-auto",children:[!j&&e.jsx(e.Fragment,{children:e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(se,{className:"text-xs font-medium",children:s("channels.email.domainName","Domain")}),e.jsx(ae,{value:u,onChange:a=>G(a.target.value),placeholder:"domain.com",autoFocus:!0,disabled:m.isPending,onKeyDown:a=>{a.key==="Enter"&&u.trim()&&B()}}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:s("channels.email.domainHint","Enter your root domain or subdomain (e.g. mail.company.com)")})]})}),j&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-amber-500/20 bg-amber-500/10 p-3",children:[e.jsx(Ne,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-amber-600"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-semibold text-amber-800",children:s("channels.email.saveYourData","Save Your Data!")}),e.jsx("p",{className:"mt-0.5 text-xs text-amber-700",children:s("channels.email.saveYourDataDesc","Copy these records before closing. They cannot be retrieved again later.")})]})]}),e.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-blue-500/20 bg-blue-500/10 p-3",children:[e.jsx(q,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-blue-600"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-semibold text-blue-800",children:s("channels.email.publishDns","Publish DNS Records")}),e.jsx("p",{className:"mt-0.5 text-xs text-blue-700",children:s("channels.email.publishDnsDesc","Add these records to your DNS provider for DKIM verification. Detection may take up to 72 hours.")})]})]}),e.jsx("div",{className:"space-y-2",children:j.map((a,p)=>e.jsx(ze,{record:a,index:p},p))})]})]}),e.jsx(ne,{children:j?e.jsx(i,{onClick:T,children:s("channels.email.done","Done")}):e.jsxs(e.Fragment,{children:[e.jsx(i,{variant:"outline",onClick:T,children:s("common.cancel","Cancel")}),e.jsx(i,{onClick:B,disabled:!u.trim()||m.isPending,children:m.isPending?e.jsxs(e.Fragment,{children:[e.jsx(P,{className:"me-1.5 h-4 w-4 animate-spin"}),s("common.configuring","Configuring...")]}):s("channels.email.configure","Configure")})]})})]})})]})}export{qe 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.