From 060176cd0856312ac4efbc1b6f15d434075d4c5b Mon Sep 17 00:00:00 2001 From: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> Date: Thu, 11 Dec 2025 09:47:56 +0530 Subject: [PATCH] Fix: Hide team members in social preview when team is private (#25770) --- .../instant-meeting/team/[slug]/[type]/page.tsx | 17 ++++++++++------- .../team/[slug]/[type]/pageWithCachedData.tsx | 17 +++++++++++------ .../team/[slug]/[type]/getServerSideProps.ts | 2 ++ 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/apps/web/app/(booking-page-wrapper)/org/[orgSlug]/instant-meeting/team/[slug]/[type]/page.tsx b/apps/web/app/(booking-page-wrapper)/org/[orgSlug]/instant-meeting/team/[slug]/[type]/page.tsx index ad77d0a307..89fe3cef6c 100644 --- a/apps/web/app/(booking-page-wrapper)/org/[orgSlug]/instant-meeting/team/[slug]/[type]/page.tsx +++ b/apps/web/app/(booking-page-wrapper)/org/[orgSlug]/instant-meeting/team/[slug]/[type]/page.tsx @@ -13,7 +13,7 @@ import Page from "~/org/[orgSlug]/instant-meeting/team/[slug]/[type]/instant-mee export const generateMetadata = async ({ params, searchParams }: _PageProps) => { const context = buildLegacyCtx(await headers(), await cookies(), await params, await searchParams); - const { isBrandingHidden, eventData } = await getData(context); + const { isBrandingHidden, eventData, teamIsPrivate } = await getData(context); const profileName = eventData?.profile.name ?? ""; const profileImage = eventData?.profile.image; @@ -22,12 +22,15 @@ export const generateMetadata = async ({ params, searchParams }: _PageProps) => const meeting = { title, profile: { name: profileName, image: profileImage }, - users: [ - ...(eventData?.users || []).map((user) => ({ - name: `${user.name}`, - username: `${user.username}`, - })), - ], + // Hide team member names in preview if team is private + users: teamIsPrivate + ? [] + : [ + ...(eventData?.users || []).map((user) => ({ + name: `${user.name}`, + username: `${user.username}`, + })), + ], }; const decodedParams = decodeParams(await params); const metadata = await generateMeetingMetadata( diff --git a/apps/web/app/(booking-page-wrapper)/team/[slug]/[type]/pageWithCachedData.tsx b/apps/web/app/(booking-page-wrapper)/team/[slug]/[type]/pageWithCachedData.tsx index 73655d5c83..a783783532 100644 --- a/apps/web/app/(booking-page-wrapper)/team/[slug]/[type]/pageWithCachedData.tsx +++ b/apps/web/app/(booking-page-wrapper)/team/[slug]/[type]/pageWithCachedData.tsx @@ -91,15 +91,20 @@ export const generateMetadata = async ({ params, searchParams }: PageProps) => { const profileName = enrichedEventType.profile.name ?? ""; const profileImage = enrichedEventType.profile.image; + const teamIsPrivate = teamData.isPrivate; + const meeting = { title, profile: { name: profileName, image: profileImage }, - users: [ - ...(enrichedEventType?.subsetOfUsers || []).map((user) => ({ - name: `${user.name}`, - username: `${user.username}`, - })), - ], + // Hide team member names in preview if team is private + users: teamIsPrivate + ? [] + : [ + ...(enrichedEventType?.subsetOfUsers || []).map((user) => ({ + name: `${user.name}`, + username: `${user.username}`, + })), + ], }; const { hideBranding, isSEOIndexable } = _getTeamMetadataForBooking(teamData, enrichedEventType.id); diff --git a/apps/web/lib/org/[orgSlug]/instant-meeting/team/[slug]/[type]/getServerSideProps.ts b/apps/web/lib/org/[orgSlug]/instant-meeting/team/[slug]/[type]/getServerSideProps.ts index 23a5164a2c..a6881912f0 100644 --- a/apps/web/lib/org/[orgSlug]/instant-meeting/team/[slug]/[type]/getServerSideProps.ts +++ b/apps/web/lib/org/[orgSlug]/instant-meeting/team/[slug]/[type]/getServerSideProps.ts @@ -28,6 +28,7 @@ export const getServerSideProps = async (context: GetServerSidePropsContext) => }, select: { id: true, + isPrivate: true, hideBranding: true, parent: { select: { @@ -86,6 +87,7 @@ export const getServerSideProps = async (context: GetServerSidePropsContext) => team, }), themeBasis: null, + teamIsPrivate: team.isPrivate, }, }; };