diff --git a/package.json b/package.json index 5ef5bdef..6fde2839 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vocechat-web", - "version": "0.7.35", + "version": "0.7.36", "homepage": "https://voce.chat", "dependencies": { "@metamask/onboarding": "^1.0.1", diff --git a/src/components/ManageMembers/MemberList.tsx b/src/components/ManageMembers/MemberList.tsx index 6a106edd..23c491b8 100644 --- a/src/components/ManageMembers/MemberList.tsx +++ b/src/components/ManageMembers/MemberList.tsx @@ -28,7 +28,10 @@ const MemberList: FC = ({ cid }) => { const userMap = useAppSelector((store) => store.users.byId, shallowEqual); const channels = useAppSelector((store) => store.channels, shallowEqual); const { uids, input, updateInput } = useFilteredUsers(); - const { copyEmail, removeFromChannel, removeUser } = useUserOperation({ cid }); + const { copyEmail, canCopyEmail, removeFromChannel, removeUser, showEmailInChannel } = + useUserOperation({ + cid + }); const [updateUser, { isSuccess: updateSuccess }] = useUpdateUserMutation(); useEffect(() => { @@ -67,10 +70,12 @@ const MemberList: FC = ({ cid }) => { const { name, email, is_admin } = currUser; const owner = channel && channel.owner == uid; const switchRoleVisible = loginUser?.is_admin && loginUser.uid !== uid && uid !== 1; - const dotsVisible = email || loginUser?.is_admin; + let dotsVisible = loginUser?.is_admin; const canRemove = loginUser?.is_admin && loginUser?.uid != uid && uid !== 1; const canRemoveFromChannel = channel && channel.owner == loginUser?.uid && loginUser?.uid != uid; + + dotsVisible = [canCopyEmail, canRemove, canRemoveFromChannel].some((i) => i); return (
  • = ({ cid }) => { {name} {owner && } - - {email} - + {showEmailInChannel && ( + + {email} + + )}
    @@ -138,7 +145,7 @@ const MemberList: FC = ({ cid }) => { trigger="click" content={
      - {email && ( + {canCopyEmail && (
    • {ct("action.copy_email")}
    • diff --git a/src/hooks/useUserOperation.ts b/src/hooks/useUserOperation.ts index a151d11f..4e502fe2 100644 --- a/src/hooks/useUserOperation.ts +++ b/src/hooks/useUserOperation.ts @@ -144,6 +144,7 @@ const useUserOperation = ({ uid, cid }: IProps) => { const canRemoveFromContact: boolean = loginUid != uid; const canInviteChannel = !!cid && (loginUser?.is_admin || channel?.owner == loginUser?.uid); return { + showEmailInChannel: show_email, isChannelOwner: loginUser?.uid == channel?.owner || (channel?.is_public && loginUserIsAdmin), isAdmin: !!user?.is_admin, updateRole,