1import{J as G,g as X,K as z,f as Z,q as i,P as ee,h as a,a_ as q,j as e,a as N,af as ne,ag as te,a8 as ie,r as g,dB as ae,eo as se,U as oe,ae as re,ah as de,V as ce,B as w,c as L,aq as W,s as A,bw as le,bx as ge,bt as pe,bs as me}from"./index-COa8VSU9.js";import{W as ue,u as he}from"./WorkspaceDataContext-BSTuBfzi.js";import{N as fe}from"./NotFound-COGIBTw6.js";import{S as xe}from"./RefreshIcon-BkqwuL43.js";import{S as C}from"./index-DuAHL1yl.js";import{a as be,b as we}from"./IntegrationsV2.styled-cejG3R7I.js";import{R as ye}from"./ReconnectConfirmationModal-B-sK0Qy0.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},d=new Error().stack;d&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[d]="17808aef-a2d4-45be-9a46-09dd594b7b0a",n._sentryDebugIdIdentifier="sentry-dbid-17808aef-a2d4-45be-9a46-09dd594b7b0a")}catch{}})();const je=Z(` 2 query CampaignsByIntegrator( 3 $websiteId: Int! 4 $integrator: String! 5 $perPage: Int 6 ) { 7 campaignsWithAnalytics( 8 input: { 9 website_id: $websiteId 10 channel: POPUP 11 filter: { integrator: $integrator } 12 } 13 pagination: { per_page: $perPage } 14 ) { 15 campaigns { 16 id 17 label 18 activated 19 variations { 20 id 21 label 22 } 23 } 24 total_count 25 } 26 } 27`),Me=(n,d)=>G({queryKey:z.campaigns(n),queryFn:async({signal:o})=>{const{campaignsWithAnalytics:u}=await X.request({document:je,variables:{...n,perPage:n.perPage??50},signal:o});return u},...d}),Ce=i(ee)` 28 display: flex; 29 flex-direction: column; 30 gap: 24px; 31 padding: 24px; 32`,ve=i.header` 33 align-items: center; 34 display: flex; 35 flex-direction: row; 36 gap: var(--space-md); 37`,ke=i.div` 38 display: flex; 39 flex-direction: column; 40 gap: 4px; 41`,Ie=i(a.H2)` 42 font-weight: 500; 43`,P=i(q)` 44 max-width: 600px; 45`,S=i(a.Caption)` 46 color: var(--color-grayscale-6); 47 font-weight: 600; 48 letter-spacing: 0.5px; 49 text-transform: uppercase; 50`,De=i.div` 51 align-items: center; 52 display: flex; 53 justify-content: space-between; 54`;i(a.Body)` 55 color: var(--color-grayscale-6); 56`;i(a.Body)` 57 font-weight: 500; 58`;const R=i.div` 59 display: flex; 60 flex-direction: column; 61 gap: var(--space-md); 62`,F=i.div` 63 border: 1px solid var(--color-grayscale-2); 64 border-radius: var(--space-sm); 65 display: flex; 66 flex-direction: column; 67`,v=i.div` 68 align-items: center; 69 border-bottom: 1px solid var(--color-grayscale-2); 70 display: flex; 71 font-size: var(--size-body); 72 justify-content: space-between; 73 line-height: var(--height-body); 74 padding: var(--space-md); 75 76 &:last-child { 77 border-bottom: none; 78 } 79`,k=i.div` 80 display: flex; 81 flex-direction: column; 82 gap: 2px; 83`,$e=i(q)` 84 border-color: var(--color-red-dark); 85 max-width: 600px; 86`,_e=i.div` 87 align-items: flex-start; 88 display: flex; 89 flex-direction: column; 90 gap: var(--space-md); 91 text-wrap: pretty; 92`,Be=n=>e.jsx(a.Bold,{children:n}),Pe=i(F)` 93 margin-top: var(--space-md); 94`,Se=({integrationName:n,campaigns:d,workspace:o,websiteHost:u,error:r,isDisconnecting:c,onClose:h,onConfirm:f})=>{const m=N();return e.jsxs(le,{onClose:h,parent:"app",width:497,children:[e.jsx(ge,{children:m.formatMessage({id:"integration.detail.disconnect.modal.title",description:"Disconnect integration confirmation modal title",defaultMessage:"Disconnect {name}?"},{name:n})}),e.jsxs(pe,{children:[e.jsx(a.Body,{children:m.formatMessage({id:"integration.detail.disconnect.modal.description",description:"Disconnect integration confirmation modal description â scopes the impact to the current website",defaultMessage:"All campaigns on {website} syncing to {name} will stop sending data."},{name:n,website:u})}),d.length>0?e.jsx(Pe,{children:d.map(l=>{const x=l.variations[0]?.id;return e.jsxs(v,{children:[e.jsx(k,{children:x===void 0?e.jsx(a.Bold,{children:l.label}):e.jsx(L,{href:W("popups",`wisepops/edit/${x}`,Number(o)),target:"_blank",children:e.jsx(a.Bold,{children:l.label})})}),e.jsx(A,{color:l.activated?"green":"neutral",kind:"light",shape:"round",size:"small",children:l.activated?m.formatMessage({id:"integration.detail.campaigns.status.published",description:"Integration detail campaign published status",defaultMessage:"Published"}):m.formatMessage({id:"integration.detail.campaigns.status.draft",description:"Integration detail campaign draft status",defaultMessage:"Draft"})})]},l.id)})}):null,r?e.jsx(a.Body,{style:{color:"var(--color-red-dark)"},children:r}):null]}),e.jsxs(me,{children:[e.jsx(w,{disabled:c,kind:"ghost",onClick:h,size:"medium",children:m.formatMessage({id:"integration.detail.disconnect.modal.cancel",description:"Disconnect integration confirmation cancel button",defaultMessage:"Cancel"})}),e.jsx(w,{kind:"destructive",loading:c,onClick:f,size:"medium",children:m.formatMessage({id:"integration.detail.disconnect.modal.confirm",description:"Disconnect integration confirmation confirm button",defaultMessage:"Disconnect {name}"},{name:n})})]})]})},Re=()=>{const n=N(),d=ne(),{workspace:o,website:u,integrator:r}
94=te({from:"/_nav/workspaces/$workspace/websites/$website/integrations/$integrator/"}),{website:{id:c,host:h}}=he(),f=ie(),[m,l]=g.useState(!1),[x,b]=g.useState(null),{data:I,isPending:U,isFetching:E}=ae({websiteId:c}),y=se(),t=g.useMemo(()=>I?.find(s=>s.name===r),[I,r]),{data:D,isPending:j}=Me({websiteId:c,integrator:r}),$=D?.campaigns??[],H=D?.total_count??0,[T,M]=g.useState(!1),O=g.useCallback(()=>{M(!0)},[]),K=g.useCallback(()=>{M(!1)},[]),Q=g.useCallback(()=>{if(M(!1),t?.connectionType==="oauth"){window.open(`/api/websites/${c}/integration/${encodeURIComponent(r)}/oauth`,"_blank");return}const s=new URLSearchParams({websiteId:String(c),workspaceId:o});window.open(`/connect/${encodeURIComponent(r)}?${s}`,"_blank")},[t?.connectionType,c,r,o]),J=g.useCallback(()=>{b(null),l(!0)},[]),V=g.useCallback(()=>{l(!1)},[]),Y=g.useCallback(()=>{b(null);const s=n.formatMessage({id:"integration.detail.disconnect.failed",description:"Fallback error shown in the disconnect modal when the mutation has no specific error message",defaultMessage:"Disconnect failed"});y.mutate({websiteId:c,integrator:r},{onSuccess:p=>{if(!p.success){b(p.error??s);return}f.invalidateQueries({queryKey:z.all}
94),l(!1),d({to:"/workspaces/$workspace/websites/$website/integrations",params:{workspace:o,website:u}})},onError:p=>{b(p.message??s)}})},[n,y,c,r,f,d,o,u]);if(U)return null;if(!t)return e.jsx(fe,{description:n.formatMessage({id:"integration.detail.not_found.description",description:"Integration detail not-found description shown for unknown integrator slugs",defaultMessage:"We couldn't find that integration. It may have been removed, or the link is incorrect."})});const _=oe(t.name),B=t.connectedAt?n.formatDate(new Date(t.connectedAt),{year:"numeric",month:"long",day:"numeric"}):null;return e.jsxs(Ce,{title:n.formatMessage({id:"page.title.integration.detail",description:"Integration detail page website title",defaultMessage:"{name} - Integrations - Wisepops"},{name:t.displayName}),children:[e.jsxs(re,{"data-testid":"integration-detail-back-link",kind:"ghost",params:{workspace:o,website:u},size:"small",to:"/workspaces/$workspace/websites/$website/integrations",children:[e.jsx(de,{height:16,width:16}),n.formatMessage({id:"integration.detail.back",description:"Integration detail page back button label",defaultMessage:"Integrations"})]}),e.jsxs(ve,{children:[_?e.jsx(be,{alt:t.displayName,src:_}):e.jsx(we,{children:e.jsx(a.H2,{children:t.avatarLetter})}),e.jsxs(ke,{children:[e.jsx(Ie,{children:t.displayName}),e.jsx(a.Body,{children:t.description})]})]}),e.jsx(P,{children:e.jsxs(R,{children:[t.missingScopes.length>0&&e.jsx(ce,{"data-testid":"integration-missing-scopes-banner",kind:"warning",message:n.formatMessage({id:"integration.detail.connection.missing_scopes.message",description:"Warning shown when the integration's connection is missing newly required permissions",defaultMessage:"Your {name} connection is missing permissions required by newer features. Reconnect your account to update them."},{name:t.displayName}),title:n.formatMessage({id:"integration.detail.connection.missing_scopes.title",description:"Title of the warning shown when the integration's connection is missing newly required permissions",defaultMessage:"New permissions required"})}),e.jsxs(De,{children:[B?e.jsx(a.Body,{children:n.formatMessage({id:"integration.detail.connection.connected_on_inline",description:"Inline 'Connected on <bold>{date}</bold>' text shown next to the Reconnect button; the bold tag emphasizes the date",defaultMessage:"Connected on <bold>{date}</bold>"},{date:B,bold:Be})}):E?e.jsx(C,{$height:"16px",$width:"200px"}):e.jsx("span",{}),e.jsx(w,{kind:"tertiary",onClick:O,prefix:e.jsx(xe,{height:16,width:16}),size:"small",children:n.formatMessage({id:"integration.detail.connection.reconnect",description:"Integration detail reconnect button label",defaultMessage:"Reconnect"})})]})]})}),e.jsx(P,{children:e.jsxs(R,{children:[e.jsx(S,{children:j?n.formatMessage({id:"integration.detail.campaigns.title.loading",description:"Integration detail campaigns section title while loading",defaultMessage:"Campaigns using {name}"},{name:t.displayName}):n.formatMessage({id:"integration.detail.campaigns.title",description:"Integration detail campaigns section title",defaultMessage:"Campaigns using {name} ({count})"},{name:t.displayName,count:H})}),e.jsx(F,{children:j?Array.from({length:3},(s,p)=>e.jsxs(v,{children:[e.jsx(k,{children:e.jsx(C,{$height:"16px",$width:"220px"})}),e.jsx(C,{$height:"20px",$width:"72px"})]},p)):$.map(s=>{const p=s.variations[0]?.id;return e.jsxs(v,{children:[e.jsx(k,{children:p===void 0?e.jsx(a.Bold,{children:s.label}):e.jsx(L,{href:W("popups",`wisepops/edit/${p}`,Number(o)),target:"_blank",children:e.jsx(a.Bold,{children:s.label})})}),e.jsx(A,{color:s.activated?"green":"neutral",kind:"light",shape:"round",size:"small",children:s.activated?n.formatMessage({id:"integration.detail.campaigns.status.published",description:"Integration detail campaign published status",defaultMessage:"Published"}):n.formatMessage({id:"integration.detail.campaigns.status.draft",description:"Integration detail campaign draft status",defaultMessage:"Draft"})})]},s.id)})})]})}),e.jsx($e,{children:e.jsxs(_e,{children:[e.jsx(S,{children:n.formatMessage({id:"integration.detail.danger_zone.title",description:"Integration detail danger zone section title",defaultMessage:"Danger zone"})}),e.jsx(a.Body,{children:n.formatMessage({id:"integration.detail.danger_zone.description",description:"Integration detail danger zone description",defaultMessage:"Disconnecting {name} will stop syncing leads from all campaigns currently using it."},{name:t.displayName})}),e.jsx(w,{disabled:j,kind:"danger-outline",onClick:J,size:"small",children:n.formatMessage({id:"integration.detail.danger_zone.disconnect",description:"Integration detail disconnect button label",defaultMessage:"Disconnect {name}"},{name:t.displayName})})]})}),m?e.jsx(Se,{campaigns:$,error:x,integrationName:t.displayName,isDisconnecting:y.isPending,onClose:V,onConfirm:Y,websiteHost:h,workspace:o}):null,e.jsx(ye,{integrator:r,isOpen:T,onCancel:K,onConfirm:Q,websiteHost:h})]})},Ue=()=>e.jsx(ue,{children:e.jsx(Re,{})});
94export{Ue as component};
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.