1import{_ as P}from"./BrAHB0cP.js";import{M as $,H as N,a6 as w,C as I,s as S,c as l,a as e,y as r,b as j,t as g,a7 as O,r as u,o as d,f as B}from"./DSH_L3T3.js";import"./DQRoPiaP.js";const E={class:"min-h-screen flex items-center justify-center bg-base-200"},M={class:"card w-96 bg-base-100 shadow-xl"},R={class:"card-body text-center"},T={key:0},q={class:"my-5"},A={class:"text-base-content/60"},F={key:1},U={class:"text-base-content/60 mb-4"},V={key:2},z={class:"text-base-content/60 mb-4"},Y=$({__name:"callback",setup(D){const m=N(),y=w(),{$supabase:h}=I(),k=h,x=O(),s=u(!0),t=u(null),i=u(null),o=u(null),v=B(()=>o.value==="gmail"?"Gmail":o.value==="outlook"?"Outlook":"Email"),p=()=>{i.value?y.push(`/company/${i.value}/integrations`):y.push("/company")};return S(async()=>{const f=m.query.code,a=m.query.state,c=m.query.error;if(c){t.value=`OAuth error: ${c}`,s.value=!1;return}if(!f){t.value="No authorization code received",s.value=!1;return}if(!a){t.value="No state parameter received. Please try connecting again.",s.value=!1;return}try{const n=JSON.parse(decodeURIComponent(a));if(i.value=n.company_id,o.value=n.provider,!i.value){t.value="Invalid state parameter. Please try connecting again.",s.value=!1;return}if(!o.value||!["gmail","outlook"].includes(o.value)){t.value="Invalid provider. Please try connecting again.",s.value=!1;return}const _=await k.auth.getSession();if(!_.data.session){t.value="Please log in to complete the integration",s.value=!1;return}const C=`${x.public.siteUrl}/integrations/email/callback`,b=await $fetch(`/api/v1/${i.value}/integrations/email/connect`,{method:"POST",headers:{authorization:`Bearer ${_.data.session.access_token}`},body:{code:f,redirect_uri:C,provider:o.value}});b.status==="success"?setTimeout(()=>{p()},2e3):t.value=b.message||"Failed to connect email"}catch(n){console.error("Email connection error:",n),n.message?.includes("JSON")?t.value="Invalid state parameter. Please try connecting again.":t.value=n.statusMessage||n.message||"Failed to connect email"}finally{s.value=!1}}),(f,a)=>{const c=P;return d(),l("div",E,[e("div",M,[e("div",R,[r(s)?(d(),l("div",T,[e("div",q,[j(c,{message:`Connecting ${r(v)}`},null,8,["message"])]),e("p",A," Processing your "+g(r(v))+" connection... ",1)])):r(t)?(d(),l("div",F,[a[0]||(a[0]=e("h2",{class:"card-title justify-center mb-2 text-error"},"Connection Failed",-1)),e("p",U,g(r(t)),1),e("div",{class:"card-actions justify-center"},[e("button",{class:"btn btn-primary",onClick:p}," Try Again ")])])):(d(),l("div",V,[a[1]||(a[1]=e("h2",{class:"card-title justify-center mb-2 text-success"},"Connected Successfully!",-1)),e("p",z," Your "+g(r(v))+" integration is now active. SupaPM can now monitor your email threads for status updates. ",1),e("div",{class:"card-actions justify-center"},[e("button",{class:"btn btn-primary",onClick:p}," View Integrations ")])]))])])])}}});export{Y as default}; 2//# sourceMappingURL=BIPnCrUK.js.map
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.