@clerk/clerk-js
Version:
Clerk JS library
1 lines • 13.8 kB
JavaScript
;(globalThis.webpackChunk_clerk_clerk_js=globalThis.webpackChunk_clerk_clerk_js||[]).push([["780"],{6061:function(e,t,i){i.r(t),i.d(t,{OrganizationSwitcher:()=>K});var o=i(9109),n=i(9144),r=i(2672),a=i(4045),c=i(1576),s=i(4204),l=i(2464),d=i(3799),g=i(2305),p=i(5973),u=i(2915),h=i(1151),z=i(3344),m=i(8969),S=i(3929),w=i(4174),v=i(4676),x=i(8774),$=i(8870),f=i(1217),Z=i(7484);let b=e=>{let t=(0,r.useCardState)(),{userSuggestions:i}=(0,d.eW)({userSuggestions:Z.AO.userSuggestions});return"accepted"===e.status?(0,o.tZ)(s.Text,{colorScheme:"secondary",localizationKey:(0,s.localizationKeys)("organizationSwitcher.suggestionsAcceptedLabel")}):(0,o.tZ)(s.Button,{elementDescriptor:s.descriptors.organizationSwitcherInvitationAcceptButton,textVariant:"buttonSmall",variant:"outline",colorScheme:"neutral",size:"sm",isLoading:t.isLoading,onClick:()=>t.runAsync(e.accept).then(e=>i?.setData?.(t=>(0,Z.Sz)(e,t))).catch(e=>(0,$.S3)(e,[],t.setError)),localizationKey:(0,s.localizationKeys)("organizationSwitcher.action__suggestionsAccept")})},B=e=>{let t=(0,r.useCardState)();return(0,o.tZ)(s.Button,{elementDescriptor:s.descriptors.organizationSwitcherInvitationAcceptButton,textVariant:"buttonSmall",variant:"outline",colorScheme:"neutral",size:"xs",isLoading:t.isLoading,onClick:e.onAccept,localizationKey:(0,s.localizationKeys)("organizationSwitcher.action__invitationAccept")})},I=e=>{let{children:t,publicOrganizationData:i}=e;return(0,o.BX)(s.Flex,{align:"center",gap:2,sx:e=>({justifyContent:"space-between",padding:`${e.space.$4} ${e.space.$5}`}),elementDescriptor:s.descriptors.organizationSwitcherPopoverInvitationActionsBox,children:[(0,o.tZ)(p.Z,{elementId:"organizationSwitcherListedOrganization",organization:i,sx:e=>({color:e.colors.$colorMutedForeground,":hover":{color:e.colors.$colorMutedForeground}})}),t]})},A=(0,r.withCardStateProvider)(e=>{let{invitation:t,onOrganizationClick:i}=e,{accept:n,publicOrganizationData:a,status:l}=t,g=(0,r.useCardState)(),{getOrganization:u}=(0,d.cL)(),{organization:h}=(0,d.o8)(),{userInvitations:z}=(0,d.eW)({userInvitations:Z.AO.userInvitations,userMemberships:Z.AO.userMemberships}),{acceptedInvitations:m,setAcceptedInvitations:S}=(0,c.useAcceptedInvitations)(),v=m.find(e=>e.invitation.id===t.id)?.organization;return"accepted"===l?t.publicOrganizationData.id===h?.id||v?.id&&h?.id===v.id?null:(0,o.tZ)(x.K,{elementDescriptor:s.descriptors.organizationSwitcherPreviewButton,icon:w.nR,onClick:v?()=>i(v):void 0,role:"menuitem",children:(0,o.tZ)(p.Z,{elementId:"organizationSwitcherListedOrganization",organization:a,sx:e=>({color:e.colors.$colorMutedForeground,":hover":{color:e.colors.$colorMutedForeground}})})}):(0,o.tZ)(I,{publicOrganizationData:a,children:(0,o.tZ)(B,{onAccept:()=>g.runAsync(async()=>[await n(),await u(a.id)]).then(([e,t])=>{z?.setData?.(t=>(0,Z.Sz)(e,t,"negative")),S(i=>[...i,{organization:t,invitation:e}])}).catch(e=>(0,$.S3)(e,[],g.setError))})})}),O=e=>{let{showBorder:t,...i}=e;return(0,o.tZ)(g.eX,{role:"menu",...i})},C=(0,r.withCardStateProvider)(e=>(0,o.tZ)(I,{publicOrganizationData:e.publicOrganizationData,children:(0,o.tZ)(b,{...e})})),P=e=>{let{onOrganizationClick:t}=e,{ref:i,userSuggestions:n,userInvitations:r}=(()=>{let{userInvitations:e,userSuggestions:t}=(0,d.eW)(Z.AO),{ref:i}=(0,l.YD)({threshold:0,onChange:i=>{i&&(e.hasNextPage?e.fetchNext?.():t.fetchNext?.())}});return{userInvitations:e,userSuggestions:t,ref:i}})(),a=r.isLoading||n.isLoading,c=r.hasNextPage||n.hasNextPage,g=r.data?.filter(e=>!!e)||[],p=n.data?.filter(e=>!!e)||[],u=g.length>0||p.length>0;return u||a?(0,o.tZ)(O,{showBorder:u||a,elementDescriptor:s.descriptors.organizationSwitcherPopoverInvitationActions,children:(0,o.BX)(s.Box,{sx:e=>({maxHeight:`calc(4 * ${e.sizes.$17} + 4px)`,overflowY:"auto",...f.common.unstyledScrollbar(e)}),children:[g?.map(e=>(0,o.tZ)(A,{invitation:e,onOrganizationClick:t},e.id)),!r.hasNextPage&&p?.map(e=>(0,o.tZ)(C,{...e},e.id)),(c||a)&&(0,o.tZ)(m.q7,{ref:i})]})}):null},y=e=>{let{onPersonalWorkspaceClick:t,onOrganizationClick:i}=e,{hidePersonal:n}=(0,c.useOrganizationSwitcherContext)(),{organization:r}=(0,d.o8)(),{ref:a,userMemberships:g}=(()=>{let{userMemberships:e}=(0,d.eW)({userMemberships:Z.AO.userMemberships}),{ref:t}=(0,l.YD)({threshold:0,onChange:t=>{t&&e.hasNextPage&&e.fetchNext?.()}});return{userMemberships:e,ref:t}})(),{user:h}=(0,d.aF)(),z=((g.count||0)>0&&g.data||[]).map(e=>e.organization).filter(e=>e.id!==r?.id);if(!h)return null;let{username:S,primaryEmailAddress:v,primaryPhoneNumber:$,...b}=h,{isLoading:B,hasNextPage:I}=g;return(0,o.BX)(s.Box,{sx:e=>({maxHeight:`calc((4 * ${e.sizes.$17}) + 4px)`,overflowY:"auto","> button,div":{border:`0 solid ${e.colors.$borderAlpha100}`},">:not([hidden])~:not([hidden])":{borderTopWidth:"1px",borderBottomWidth:"0"},...f.common.unstyledScrollbar(e)}),role:"group","aria-label":n?"List of all organization memberships":"List of all accounts",children:[r&&!n&&(0,o.tZ)(x.K,{elementDescriptor:s.descriptors.organizationSwitcherPreviewButton,elementId:s.descriptors.organizationSwitcherPreviewButton.setId("personal"),icon:w.nR,onClick:t,role:"menuitem",children:(0,o.tZ)(u.g,{user:b,mainIdentifierVariant:"buttonLarge",title:(0,s.localizationKeys)("organizationSwitcher.personalWorkspace")})}),z.map(e=>(0,o.tZ)(x.K,{elementDescriptor:s.descriptors.organizationSwitcherPreviewButton,elementId:s.descriptors.organizationSwitcherPreviewButton.setId("organization"),icon:w.nR,onClick:()=>i(e),role:"menuitem",sx:e=>({border:`0 solid ${e.colors.$borderAlpha100}`}),children:(0,o.tZ)(p.Z,{elementId:"organizationSwitcherListedOrganization",organization:e})},e.id)),(I||B)&&(0,o.tZ)(m.q7,{ref:a})]})},D=({onCreateOrganizationClick:e})=>{let{user:t}=(0,d.aF)();return t?.createOrganizationEnabled?(0,o.tZ)(g.aU,{elementDescriptor:s.descriptors.organizationSwitcherPopoverActionButton,elementId:s.descriptors.organizationSwitcherPopoverActionButton.setId("createOrganization"),iconBoxElementDescriptor:s.descriptors.organizationSwitcherPopoverActionButtonIconBox,iconBoxElementId:s.descriptors.organizationSwitcherPopoverActionButtonIconBox.setId("createOrganization"),iconElementDescriptor:s.descriptors.organizationSwitcherPopoverActionButtonIcon,iconElementId:s.descriptors.organizationSwitcherPopoverActionButtonIcon.setId("createOrganization"),icon:w.mm,label:(0,s.localizationKeys)("organizationSwitcher.action__createOrganization"),onClick:e,sx:e=>({padding:`${e.space.$5} ${e.space.$5}`}),iconSx:e=>({width:e.sizes.$9,height:e.sizes.$6}),iconBoxSx:e=>({width:e.sizes.$9,height:e.sizes.$6}),spinnerSize:"sm"}):null},k=e=>{let{onCreateOrganizationClick:t,onPersonalWorkspaceClick:i,onOrganizationClick:n}=e;return(0,o.BX)(o.HY,{children:[(0,o.tZ)(P,{onOrganizationClick:n}),(0,o.tZ)(y,{onPersonalWorkspaceClick:i,onOrganizationClick:n}),(0,o.tZ)(D,{onCreateOrganizationClick:t})]})},R=n.forwardRef((e,t)=>{let{close:i,...n}=e,a=()=>i?.(!1),l=(0,r.useCardState)(),{__experimental_asStandalone:m}=(0,c.useOrganizationSwitcherContext)(),{openOrganizationProfile:x,openCreateOrganization:$}=(0,d.cL)(),{organization:f}=(0,d.o8)(),{isLoaded:Z,setActive:b}=(0,d.eW)(),B=(0,v.useRouter)(),{hidePersonal:I,__unstable_manageBillingUrl:A,__unstable_manageBillingLabel:O,__unstable_manageBillingMembersLimit:C,createOrganizationMode:P,organizationProfileMode:y,afterLeaveOrganizationUrl:D,afterCreateOrganizationUrl:R,navigateCreateOrganization:L,navigateOrganizationProfile:F,afterSelectOrganizationUrl:E,afterSelectPersonalUrl:K,organizationProfileProps:W,skipInvitationScreen:X,hideSlug:M}=(0,c.useOrganizationSwitcherContext)(),{user:N}=(0,d.aF)();if(!N)return null;let{username:T,primaryEmailAddress:U,primaryPhoneNumber:Y,...j}=N;if(!Z)return null;let H=(0,o.tZ)(g.U8,{elementDescriptor:s.descriptors.organizationSwitcherPopoverActionButton,elementId:s.descriptors.organizationSwitcherPopoverActionButton.setId("manageOrganization"),iconBoxElementDescriptor:s.descriptors.organizationSwitcherPopoverActionButtonIconBox,iconBoxElementId:s.descriptors.organizationSwitcherPopoverActionButtonIconBox.setId("manageOrganization"),iconElementDescriptor:s.descriptors.organizationSwitcherPopoverActionButtonIcon,iconElementId:s.descriptors.organizationSwitcherPopoverActionButtonIcon.setId("manageOrganization"),icon:w.tc,label:(0,s.localizationKeys)("organizationSwitcher.action__manageOrganization"),onClick:()=>(a(),"navigation"===y)?F():x({...W,afterLeaveOrganizationUrl:D,__unstable_manageBillingUrl:A,__unstable_manageBillingLabel:O,__unstable_manageBillingMembersLimit:C}),trailing:(0,o.tZ)(_,{}),focusRing:!0}),V=(0,o.tZ)(g.U8,{icon:w.Nj,label:(0,z.OR)(O)||"Upgrade",onClick:()=>B.navigate((0,z.OR)(A)),focusRing:!0});return(0,o.tZ)(S.r,{elementDescriptor:s.descriptors.organizationSwitcherPopoverRootBox,children:(0,o.BX)(h.f.Root,{elementDescriptor:s.descriptors.organizationSwitcherPopoverCard,ref:t,role:"dialog","aria-label":`${f?.name} is active`,shouldEntryAnimate:!m,...n,children:[(0,o.tZ)(h.f.Content,{elementDescriptor:s.descriptors.organizationSwitcherPopoverMain,children:(0,o.BX)(g.eX,{elementDescriptor:s.descriptors.organizationSwitcherPopoverActions,role:"menu",children:[f?A?(0,o.BX)(o.HY,{children:[(0,o.tZ)(p.Z,{elementId:"organizationSwitcherActiveOrganization",organization:f,user:N,fetchRoles:!0,mainIdentifierVariant:"buttonLarge",sx:e=>({padding:`${e.space.$4} ${e.space.$5}`})}),(0,o.tZ)(g.eX,{role:"menu",sx:e=>({borderBottomWidth:e.borderWidths.$normal,borderBottomStyle:e.borderStyles.$solid,borderBottomColor:e.colors.$borderAlpha100}),children:(0,o.BX)(s.Flex,{justify:"between",sx:e=>({marginLeft:e.space.$12,padding:`0 ${e.space.$5} ${e.space.$4}`,gap:e.space.$2}),children:[H,V]})})]}):(0,o.BX)(s.Flex,{justify:"between",align:"center",sx:e=>({width:"100%",paddingRight:e.space.$5}),children:[(0,o.tZ)(p.Z,{elementId:"organizationSwitcherActiveOrganization",organization:f,user:N,fetchRoles:!0,mainIdentifierVariant:"buttonLarge",sx:e=>({padding:`${e.space.$4} ${e.space.$5}`})}),(0,o.tZ)(g.eX,{role:"menu",children:H})]}):!I&&(0,o.tZ)(u.g,{user:j,sx:e=>({padding:`${e.space.$4} ${e.space.$5}`,width:"100%"}),title:(0,s.localizationKeys)("organizationSwitcher.personalWorkspace")}),(0,o.tZ)(k,{onCreateOrganizationClick:()=>(a(),"navigation"===P)?L():$({afterCreateOrganizationUrl:R,skipInvitationScreen:X,hideSlug:M}),onPersonalWorkspaceClick:()=>l.runAsync(()=>b({organization:null,redirectUrl:K(N)})).then(a),onOrganizationClick:e=>l.runAsync(()=>b({organization:e,redirectUrl:E(e)})).then(a)})]})}),(0,o.tZ)(h.f.Footer,{elementDescriptor:s.descriptors.organizationSwitcherPopoverFooter})]})})}),_=(0,m.Ci)(({sx:e})=>{let{organizationSettings:t}=(0,c.useEnvironment)(),i=t?.domains?.enabled,{membershipRequests:n}=(0,d.o8)({membershipRequests:i||void 0});return n?.count?(0,o.tZ)(m.dN,{notificationCount:n.count,containerSx:e}):null},{permission:"org:sys_memberships:manage"}),L=(0,i(7711).C)((0,n.forwardRef)((e,t)=>{let{sx:i,...n}=e,{user:r}=(0,d.aF)(),{organization:a}=(0,d.o8)(),{hidePersonal:l}=(0,c.useOrganizationSwitcherContext)();if(!r)return null;let{username:g,primaryEmailAddress:h,primaryPhoneNumber:z,...m}=r;return(0,o.BX)(s.Button,{elementDescriptor:s.descriptors.organizationSwitcherTrigger,elementId:s.descriptors.organizationSwitcherTrigger.setId(a?"organization":"personal"),variant:"ghost",colorScheme:"neutral",hoverAsFocus:!0,focusRing:!1,sx:[e=>({padding:`${e.space.$1} ${e.space.$2}`,position:"relative"}),i],ref:t,"aria-label":`${e.isOpen?"Close":"Open"} organization switcher`,"aria-expanded":e.isOpen,"aria-haspopup":"dialog",...n,children:[a&&(0,o.tZ)(p.Z,{elementId:"organizationSwitcherTrigger",gap:3,size:"xs",fetchRoles:!0,organization:a,sx:{maxWidth:"30ch"}}),!a&&(0,o.tZ)(u.g,{size:"xs",gap:3,user:m,showAvatar:!l,sx:e=>({color:e.colors.$colorMutedForeground}),title:l?(0,s.localizationKeys)("organizationSwitcher.notSelected"):(0,s.localizationKeys)("organizationSwitcher.personalWorkspace")}),(0,o.tZ)(F,{}),(0,o.tZ)(s.Icon,{elementDescriptor:s.descriptors.organizationSwitcherTriggerIcon,icon:w._M,sx:e=>({marginLeft:`${e.space.$2}`})})]})})),F=()=>{let{userInvitations:e,userSuggestions:t}=(0,d.eW)(Z.AO),{organizationSettings:i}=(0,c.useEnvironment)(),n=(0,m.N2)({permission:"org:sys_memberships:manage"}),r=i?.domains?.enabled,{membershipRequests:a}=(0,d.o8)({membershipRequests:r&&n||void 0}),s=(e.count||0)+(t.count||0)+(a?.count||0);return s?(0,o.tZ)(m.dN,{containerSx:e=>({position:"absolute",top:`calc(${e.space.$2} * -1)`,right:`calc(${e.space.$2} * -1)`}),notificationCount:s}):null},E=(0,r.withFloatingTree)(({children:e})=>{let{defaultOpen:t}=(0,c.useOrganizationSwitcherContext)(),{floating:i,reference:r,styles:s,toggle:d,isOpen:g,nodeId:p,context:u}=(0,l.Sv)({defaultOpen:t,placement:"bottom-start",offset:8}),h=(0,n.useId)();return(0,o.BX)(o.HY,{children:[(0,o.tZ)(L,{ref:r,onClick:d,isOpen:g,"aria-controls":g?h:void 0,"aria-expanded":g}),(0,o.tZ)(a.J,{nodeId:p,context:u,isOpen:g,children:(0,n.cloneElement)(e,{id:h,close:d,ref:i,style:s})})]})}),K=(0,c.withCoreUserGuard)((0,r.withCardStateProvider)(()=>{let{__experimental_asStandalone:e}=(0,c.useOrganizationSwitcherContext)();return(0,o.tZ)(s.Flow.Root,{flow:"organizationSwitcher",sx:{display:"inline-flex"},children:(0,o.tZ)(c.AcceptedInvitationsProvider,{children:e?(0,o.tZ)(R,{close:"function"==typeof e?e:void 0}):(0,o.tZ)(E,{children:(0,o.tZ)(R,{})})})})}))},7484:function(e,t,i){i.d(t,{AO:()=>o,Sz:()=>n});let o={userMemberships:{infinite:!0},userInvitations:{infinite:!0},userSuggestions:{infinite:!0,status:["pending","accepted"]}},n=(e,t,i)=>{if(void 0===t)return[{data:[e],total_count:1}];let o=t?.[t.length-1]?.total_count||1;return t.map(t=>{if(void 0===t)return t;let n=t.data.map(t=>t.id===e.id?{...e}:t);return{...t,data:n,total_count:"negative"===i?o-1:o}})}}}]);