diff --git a/packages/frontend-2/components/workspace/discoverableWorkspaces/Card.vue b/packages/frontend-2/components/workspace/discoverableWorkspaces/Card.vue index 738f429b0..8dfbcd3d1 100644 --- a/packages/frontend-2/components/workspace/discoverableWorkspaces/Card.vue +++ b/packages/frontend-2/components/workspace/discoverableWorkspaces/Card.vue @@ -16,13 +16,15 @@
- Admins:  + + {{ adminTeam.length === 1 ? 'Admin' : 'Admins' }}:  + {{ admin.name }}{{ index < 2 && index < adminTeam.length - 1 ? ', ' : '' }} @@ -90,11 +92,22 @@ const mixpanel = useMixpanel() const adminTeam = computed(() => props.workspace.adminTeam?.map((t) => t.user) ?? []) const adminIds = computed(() => new Set(adminTeam.value.map((admin) => admin.id))) -const members = computed(() => - (props.workspace.team?.items?.map((u) => u.user) ?? []).filter( - (user) => !adminIds.value.has(user.id) - ) -) +const allMembers = computed(() => props.workspace.team?.items?.map((u) => u.user) ?? []) +const members = computed(() => { + // Only deduplicate if there's exactly one person total (admin who is also the only member) + const totalUniqueUsers = new Set([ + ...adminTeam.value.map((admin) => admin.id), + ...allMembers.value.map((member) => member.id) + ]).size + + if (totalUniqueUsers === 1) { + // Single user case: filter out admins from members to avoid duplication + return allMembers.value.filter((user) => !adminIds.value.has(user.id)) + } else { + // Multiple users: show all members including those who are also admins + return allMembers.value + } +}) const onRequest = () => { requestToJoinWorkspace(props.workspace, props.location || 'discovery_card')