diff --git a/apps/web/pages/event-types/index.tsx b/apps/web/pages/event-types/index.tsx index 738c642e72..fbb4f962cb 100644 --- a/apps/web/pages/event-types/index.tsx +++ b/apps/web/pages/event-types/index.tsx @@ -896,6 +896,9 @@ const Main = ({ filters }: { filters: ReturnType 0 && teams[index]; - const membershipCount = teamDataMatchWithEventType?.membershipCount || 0; + const teamDataMatchWithEventType = teams && teams.length > 0 ? teams[index] : null; + const membershipCount = teamDataMatchWithEventType + ? teamDataMatchWithEventType?.membershipCount + : 0; return ( <> @@ -970,7 +975,9 @@ const Main = ({ filters }: { filters: ReturnType ) : ( { const isOrgAdmin = !!(await isOrganisationAdmin(ctx.user.id, ctx.user.organization.id)); // Org id exists here as we're inside a conditional TS complaining for some reason + // This can be optimized by using a custom view between membership and team and teamMemberCount + const membershipCount = await prisma.teamMemberCount.findMany({ + where: { + id: { + in: membershipsWithoutParent.map((m) => m.teamId), + }, + }, + }); + return membershipsWithoutParent.map(({ team: { inviteTokens, ..._team }, ...membership }) => ({ role: membership.role, accepted: membership.accepted, @@ -42,6 +51,7 @@ export const listHandler = async ({ ctx }: ListOptions) => { ..._team, /** To prevent breaking we only return non-email attached token here, if we have one */ inviteToken: inviteTokens.find((token) => token.identifier === "invite-link-for-teamId-" + _team.id), + membershipCount: membershipCount.find((m) => m.id === _team.id)?.count || 0, })); } @@ -68,8 +78,6 @@ export const listHandler = async ({ ctx }: ListOptions) => { }, }); - console.log({ membershipCount }); - return memberships .filter((mmship) => { const metadata = teamMetadataSchema.parse(mmship.team.metadata);