1import{j as e}from"./ui-vendor-DugvyhkM.js";import{i as L,e as A,r as t,L as f}from"./react-vendor-CnbS1iJ1.js";import{c as U,u as $,a as R,s as h,L as g,B as j}from"./index-Bg0TxxV_.js";import{C as S,b as B,c as T,d as D,a as v}from"./card-Cae1mpFA.js";import{B as q}from"./badge-CzHqQw3k.js";import{g as z}from"./useAccessManager-ASQ8VUiP.js";import{C as F}from"./circle-alert-C6anXDVL.js";import{C as P}from"./circle-check-CpUwUsmM.js";import{U as V}from"./users-NgL9bi2j.js";import{U as H}from"./user-plus-D8iXWKsB.js";import"./supabase-vendor-DOL-USaH.js";import"./charts-vendor-BthknRg3.js";import"./query-vendor-VfPrV_BW.js";import"./activityLogger-Bs2uaUcR.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const J=U("LogIn",[["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}],["polyline",{points:"10 17 15 12 10 7",key:"1ail0h"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}]]);function ie(){const{token:i}=L(),{user:m,isLoading:u}=$(),p=A(),{toast:w}=R(),[s,b]=t.useState(null),[E,l]=t.useState(!0),[k,x]=t.useState(!1),[r,n]=t.useState(null),[c,I]=t.useState(!1),d=t.useRef(!1);t.useEffect(()=>{if(!i)return;(async()=>{const{data:a,error:o}=await h.from("workspace_invites").select("id, email, role, status, expires_at, workspace_id").eq("token",i).single();if(o||!a){n("Convite não encontrado."),l(!1);return}if(a.status!=="pending"){n("Este convite já foi utilizado ou revogado."),l(!1);return}if(new Date(a.expires_at)<new Date){n("Este convite expirou."),l(!1);return}const{data:_}=await h.from("workspaces").select("name, slug").eq("id",a.workspace_id).single();b({id:a.id,email:a.email,role:a.role,status:a.status,expires_at:a.expires_at,workspace_name:_?.name||"Workspace",workspace_slug:_?.slug||""}),l(!1)})()},[i]);const N=t.useCallback(async()=>{if(!i||k||d.current)return;d.current=!0,x(!0);const{data:y,error:a}=await h.rpc("accept_workspace_invite",{p_token:i});if(a){n("Erro ao aceitar convite. Tente novamente."),x(!1),d.current=!1;return}const o=y;if(!o.success){o.error?.includes("Email não corresponde")?n(`Este convite foi enviado para ${s?.email}. Faça login com esse email para aceitar.`):n(o.error||"Erro ao aceitar convite."),x(!1),d.current=!1;return}I(!0),w({title:"Convite aceito!",description:`Você agora faz parte de ${s?.workspace_name}`}),setTimeout(()=>{s?.workspace_slug?p(`/workspace/${s.workspace_slug}`):p("/workspace")},1500)},[i,k,s,w,p]);t.useEffect(()=>{!u&&m&&s&&!c&&!r&&N()},[m,u,s,c,r,N]);const C=`/invite/${i}`;return E||u?e.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background",children:e.jsx(g,{className:"h-8 w-8 animate-spin text-primary"})}):e.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background p-4",children:e.jsxs(S,{className:"w-full max-w-md",children:[e.jsxs(B,{className:"text-center",children:[e.jsx("div",{className:"mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-full bg-primary/10",children:r?e.jsx(F,{className:"h-8 w-8 text-destructive"}):c?e.jsx(P,{className:"h-8 w-8 text-green-500"}):e.jsx(V,{className:"h-8 w-8 text-primary"})}),e.jsx(T,{children:r?"Convite inválido":c?"Convite aceito!":"Convite para workspace"}),e.jsx(D,{children:r||(c?`Redirecionando para ${s?.workspace_name}...`:"Você foi convidado para participar de")})]}),!r&&!c&&s&&e.jsxs(v,{className:"space-y-6",children:[e.jsxs("div",{className:"rounded-lg border p-4 text-center space-y-2",children:[e.jsx("p",{className:"text-lg font-semibold",children:s.workspace_name}),e.jsx(q,{variant:"secondary",children:z(s.role)}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Convite para: ",s.email]})]}),m?e.jsxs("div",{className:"flex items-center justify-center",children:[e.jsx(g,{className:"h-5 w-5 animate-spin text-primary mr-2"}),e.jsx("span",{className:"text-sm text-muted-foreground",children:"Aceitando convite..."})]}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("p",{className:"text-sm text-center text-muted-foreground",children:["Faça login ou crie uma conta com o email ",e.jsx("strong",{children:s.email})," para aceitar o convite."]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(j,{asChild:!0,className:"w-full gap-2",children:e.jsxs(f,{to:`/auth?redirect=${encodeURIComponent(C)}`,children:[e.jsx(J,{className:"h-4 w-4"}),"Já tenho conta"]})}),e.jsx(j,{asChild:!0,variant:"outline",className:"w-full gap-2",children:e.jsxs(f,{to:`/auth?redirect=${encodeURIComponent(C)}&tab=signup`,children:[e.jsx(H,{className:"h-4 w-4"}),"Criar conta"]})})]})]})]}),r&&e.jsx(v,{children:e.jsx(j,{asChild:!0,variant:"outline",className:"w-full",children:e.jsx(f,{to:"/auth",children:"Ir para login"})})}),c&&e.jsx(v,{className:"flex justify-center",children:e.jsx(g,{className:"h-5 w-5 animate-spin text-primary"})})]})})}export{ie 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.