diff --git a/.changeset/six-carrots-visit.md b/.changeset/six-carrots-visit.md new file mode 100644 index 00000000000..7b2f9e463ad --- /dev/null +++ b/.changeset/six-carrots-visit.md @@ -0,0 +1,6 @@ +--- +'@clerk/clerk-js': patch +--- +Changes to OrganizationSwitcher +- Removal of user identifier from the trigger & popover +- Hidden avatar of active user when `hidePersonal` is true diff --git a/packages/clerk-js/src/ui/components/OrganizationSwitcher/OrganizationSwitcherPopover.tsx b/packages/clerk-js/src/ui/components/OrganizationSwitcher/OrganizationSwitcherPopover.tsx index afd887682f6..51820cf05eb 100644 --- a/packages/clerk-js/src/ui/components/OrganizationSwitcher/OrganizationSwitcherPopover.tsx +++ b/packages/clerk-js/src/ui/components/OrganizationSwitcher/OrganizationSwitcherPopover.tsx @@ -52,6 +52,8 @@ export const OrganizationSwitcherPopover = React.forwardRef ({ padding: `0 ${theme.space.$6}`, marginBottom: theme.space.$6 })} title={localizationKeys('organizationSwitcher.personalWorkspace')} /> diff --git a/packages/clerk-js/src/ui/components/OrganizationSwitcher/OrganizationSwitcherTrigger.tsx b/packages/clerk-js/src/ui/components/OrganizationSwitcher/OrganizationSwitcherTrigger.tsx index ea7a56048f4..0f80ebc9ed6 100644 --- a/packages/clerk-js/src/ui/components/OrganizationSwitcher/OrganizationSwitcherTrigger.tsx +++ b/packages/clerk-js/src/ui/components/OrganizationSwitcher/OrganizationSwitcherTrigger.tsx @@ -13,7 +13,8 @@ type OrganizationSwitcherTriggerProps = PropsOfComponent & { export const OrganizationSwitcherTrigger = withAvatarShimmer( forwardRef((props, ref) => { const { sx, ...rest } = props; - const user = useCoreUser(); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { username, primaryEmailAddress, primaryPhoneNumber, ...userWithoutIdentifiers } = useCoreUser(); const { organization } = useCoreOrganization(); const { hidePersonal } = useOrganizationSwitcherContext(); @@ -39,7 +40,8 @@ export const OrganizationSwitcherTrigger = withAvatarShimmer( { const imageUrl = imageUrlProp || user?.imageUrl || externalAccount?.imageUrl; + const getAvatarSizes = (t: InternalTheme) => ({ sm: t.sizes.$8, md: t.sizes.$11, lg: t.sizes.$12x5 }[size]); + return ( { sx={[{ minWidth: '0px', width: '100%' }, sx]} {...rest} > - {showAvatar && ( + {showAvatar ? ( { {...samlAccount} name={name} avatarUrl={imageUrl} - size={t => ({ sm: t.sizes.$8, md: t.sizes.$11, lg: t.sizes.$12x5 }[size])} + size={getAvatarSizes} sx={avatarSx} rounded={rounded} /> {icon && {icon}} + ) : ( + // Reserve layout space when avatar is not visible + ({ + height: getAvatarSizes(t), + })} + /> )}