From 305eca541b257735f6098328e03a472ad19b4eaf Mon Sep 17 00:00:00 2001 From: Matt Toohey Date: Wed, 26 Aug 2026 12:58:54 +1000 Subject: [PATCH] fix(desktop): hide member invites from non-members Signed-off-by: Matt Toohey Co-authored-by: Jitter <2b2e6415e748c35180847a37aadae06a11e30dddc76b784e7fd9354c4eb42e7a@buzz.block.builderlab.xyz> --- .../src/features/channels/ui/MembersSidebar.tsx | 17 ++++++++++------- desktop/tests/e2e/channel-browser.spec.ts | 13 +++++++++++++ 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/desktop/src/features/channels/ui/MembersSidebar.tsx b/desktop/src/features/channels/ui/MembersSidebar.tsx index 2a125e0d01..2633b5bcef 100644 --- a/desktop/src/features/channels/ui/MembersSidebar.tsx +++ b/desktop/src/features/channels/ui/MembersSidebar.tsx @@ -1,6 +1,6 @@ import * as React from "react"; import { useMutation, useQueryClient } from "@tanstack/react-query"; -import { UserRoundPlus, X } from "lucide-react"; +import { Search, UserRoundPlus, X } from "lucide-react"; import { invalidateChannelState, useAddChannelMembersMutation, @@ -238,11 +238,14 @@ export function MembersSidebar({ () => new Set(rawMembers.map((member) => normalizePubkey(member.pubkey))), [rawMembers], ); - const canAddMembers = canAddChannelMembers({ - channelType: channel?.channelType, - visibility: channel?.visibility, - selfRole: selfMember?.role, - }); + const canAddMembers = + channel?.isMember === true && + canAddChannelMembers({ + channelType: channel?.channelType, + visibility: channel?.visibility, + selfRole: selfMember?.role, + }); + const MemberSearchIcon = canAddMembers ? UserRoundPlus : Search; // Distinguish "you can't add here" from "nothing to add" so a non-member // viewing a private channel gets the reason instead of a silently missing affordance. const showPrivateAddDeniedNotice = @@ -715,7 +718,7 @@ export function MembersSidebar({ className={MODAL_SEARCH_SHELL_CLASS} htmlFor="channel-management-search-users" > - +