1import{u as i,j as t,B as e,T as a,P as n,p as s,q as o,I as r,A as l,J as d,K as m,N as p,O as c,b as x,Q as g,R as u,U as j,V as v,W as h,X as b,v as z}from"./mui-BIt7sjlH.js";import{r as f}from"./vendor-DeDd1S9d.js";import{u as y,c as k}from"./money-ov5fU57B.js";import{p as S,q as _,g as I,t as w,u as C,S as A}from"./MainRoot-FScJt-ZS.js";import"./authSlice-CxxidS2C.js";import"./tokenStorage-CeXMvGe6.js";import"./auth.service-C7ZLVihG.js";import{D as $}from"./DigiMeetInput-B3krFOjE.js";import"./detectCountry-CTPjzCUo.js";import"./notistack.esm-BGCormb5.js";import{u as T}from"./utils-DBxTrBUE.js";import"./redux-lwcHWwR4.js";import"./index-eA1xtCXN.js";import"./auth-8xEyIOu9.js";import"./common-Dm41EYmf.js";import"./validation-FYHBKRea.js";import"./events-CLGt6NDe.js";import"./auth-BQKCBePa.js";import"./common-G9QmiqkL.js";import"./validation-CJweYQ-K.js";import"./events-DGEr86Un.js";import"./auth-DcIBvBaz.js";import"./common-CEU27LaV.js";import"./validation-BofHafM3.js";import"./events-CISlmPeU.js";import"./auth-zDok9JUf.js";import"./common-B_Kk5GYn.js";import"./validation-ma0VSr3d.js";import"./events-hSI99kJl.js";import"./index-B00SL2qx.js";import"./ArrowBack-p_gctqnQ.js";import"./ArrowForward-DXmyo7Mf.js";import"./firebase-zcDYupuk.js";import"./PaymentGatewayHost-DZuZ2Q6z.js";const D=()=>{const{t:D}=T(["organization"]),E=i(),{trackEvent:O}=y(),{currentOrganization:R}=k(i=>i.organization),[L,P]=f.useState([]),[W,q]=f.useState(""),[B,M]=f.useState("member"),[N,F]=f.useState(""),[K,G]=f.useState(!1),[H,J]=f.useState("");f.useEffect(()=>{O("page_viewed",{page_name:"organization_invitations",organization_id:null==R?void 0:R.id,organization_slug:null==R?void 0:R.urlSlug});const i=`${window.location.origin}/join/${null==R?void 0:R.urlSlug}?token=sample-invite-token`;F(i)},[]);const Q=L.filter(i=>"pending"===i.status).length;return t.jsxs(e,{children:[t.jsxs(e,{sx:{mb:4},children:[t.jsx(a,{variant:"h4",sx:{fontWeight:700,color:E.palette.text.primary,mb:1},children:D("organization:navigation.invitations")}),t.jsx(a,{variant:"body1",sx:{color:E.palette.text.secondary},children:D("organization:pages.invitations.subtitle","Invite team members to join your organization")})]}),t.jsxs(n,{sx:{p:3,mb:4,backgroundColor:E.palette.background.paper,border:`1px solid ${E.palette.divider}`,borderRadius:"12px"},children:[t.jsxs(e,{sx:{display:"flex",alignItems:"center",gap:1,mb:2},children:[t.jsx(S,{sx:{color:E.palette.primary.main}}),t.jsx(a,{variant:"h6",sx:{fontWeight:600},children:D("organization:pages.invitations.shareLink","Share Invite Link")})]}),t.jsx(a,{variant:"body2",sx:{color:"text.secondary",mb:2},children:D("organization:pages.invitations.shareLinkDesc","Share this link with anyone you want to invite to your organization")}),t.jsx(e,{sx:{display:"flex",gap:1},children:t.jsx(s,{fullWidth:!0,value:N,InputProps:{readOnly:!0,endAdornment:t.jsx(o,{position:"end",children:t.jsx(r,{onClick:()=>{navigator.clipboard.writeText(N),G(!0),setTimeout(()=>G(!1),3e3),O("invite_link_copied",{organization_id:null==R?void 0:R.id})},edge:"end",children:t.jsx(_,{})})})},sx:{"& .MuiOutlinedInput-root":{backgroundColor:E.palette.action.hover}}})}),K&&t.jsx(l,{severity:"success",sx:{mt:2},children:D("organization:pages.invitations.linkCopied","Invite link copied to clipboard!")})]}),t.jsxs(n,{sx:{p:3,backgroundColor:E.palette.background.paper,border:`1px solid ${E.palette.divider}`,borderRadius:"12px"},children:[t.jsxs(e,{sx:{display:"flex",alignItems:"center",gap:1,mb:3},children:[t.jsx(I,{sx:{color:E.palette.primary.main}}),t.jsx(a,{variant:"h6",sx:{fontWeight:600},children:D("organization:pages.invitations.emailInvites","Email Invitations")})]}),t.jsx(e,{sx:{mb:3},children:t.jsxs(e,{sx:{display:"flex",gap:2,alignItems:"flex-start"},children:[t.jsx($,{label:D("organization:pages.invitations.emailLabel","Email Address"),placeholder:D("organization:pages.invitations.emailPlaceholder","[email protected]"),value:W,onChange:i=>{q(i.target.value),J("")},error:!!H,helperText:H,sx:{flex:1}}),t.jsxs(d,{sx:{minWidth:150},children:[t.jsx(m,{children:D("organization:pages.invitations.roleLabel","Role")}),t.jsxs(p,{value:B,onChange:i=>M(i.target.value),label:D("organization:pages.invitations.roleLabel","Role"),children:[t.jsx(c,{value:"admin",children:D("organization:team.members.role.options.admin")}),t.jsx(c,{value:"editor",children:D("organization:team.members.role.options.editor")}),t.jsx(c,{value:"member",children:D("organization:team.members.role.options.member")}),t.jsx(c,{value:"viewer",children:D("organization:team.members.role.options.viewer")})]})]}),t.jsx(x,{variant:"contained",startIcon:t.jsx(w,{}),onClick:()=>
1{if(!W)return void J(D("validation.email_required","Email is required"));if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(W))return void J(D("validation.email_invalid","Please enter a valid email"));if(L.some(i=>i.email===W))return void J(D("validation.member_duplicate","This member has already been invited"));const i={id:Date.now().toString(),email:W,role:B,status:"pending"};P([...L,i]),q(""),J(""),null==R||R.id,(new Date).toISOString(),O("invitation_added",{organization_id:null==R?void 0:R.id,role:B})},sx:{height:56,px:3,textTransform:"none"},children:D("organization:pages.invitations.addButton","Add")})]})}),L.length>0?t.jsxs(t.Fragment,{children:[t.jsx(g,{children:t.jsxs(u,{children:[t.jsx(j,{children:t.jsxs(v,{children:[t.jsx(h,{children:D("organization:pages.invitations.email","Email")}),t.jsx(h,{children:D("organization:pages.invitations.role","Role")}),t.jsx(h,{children:D("organization:pages.invitations.status","Status")}),t.jsx(h,{align:"right",children:D("organization:pages.invitations.actions","Actions")})]})}),t.jsx(b,{children:L.map(i=>t.jsxs(v,{children:[t.jsx(h,{children:i.email}),t.jsx(h,{children:t.jsx(z,{label:D(`organization:team.members.role.options.${i.role}`),size:"small",variant:"outlined"})}),t.jsx(h,{children:t.jsx(z,{label:D(`organization:pages.invitations.status_${i.status}`,i.status),size:"small",color:"accepted"===i.status?"success":"sent"===i.status?"primary":"expired"===i.status?"error":"default"})}),t.jsx(h,{align:"right",children:t.jsx(r,{onClick:()=>{return t=i.id,P(L.filter(i=>i.id!==t)),void O("invitation_removed",{organization_id:null==R?void 0:R.id});var t},size:"small",sx:{color:E.palette.error.main},children:t.jsx(C,{})})})]},i.id))})]})}),Q>0&&t.jsx(e,{sx:{mt:3,display:"flex",justifyContent:"flex-end"},children:t.jsx(x,{variant:"contained",startIcon:t.jsx(A,{}),onClick:()=>{const i=L.filter(i=>"pending"===i.status);0!==i.length&&(P(L.map(i=>"pending"===i.status?{...i,status:"sent",sentAt:new Date}:i)),i.length,null==R||R.id,(new Date).toISOString(),O("invitations_sent",{organization_id:null==R?void 0:R.id,invitation_count:i.length}))},sx:{textTransform:"none"},children:D("organization:pages.invitations.sendButton",`Send ${Q} Invitation${Q>1?"s":""}`)})})]}):t.jsx(e,{sx:{py:4,textAlign:"center",color:E.palette.text.secondary},children:t.jsx(a,{children:D("organization:pages.invitations.noInvitations","No invitations yet. Add email addresses above to get started.")})})]})]})};export{D 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.