diff --git a/apps/web/components/eventtype/EventTeamTab.tsx b/apps/web/components/eventtype/EventTeamTab.tsx
index 68cda606aa..5767895389 100644
--- a/apps/web/components/eventtype/EventTeamTab.tsx
+++ b/apps/web/components/eventtype/EventTeamTab.tsx
@@ -19,16 +19,17 @@ interface IUserToValue {
email: string;
}
-const mapUserToValue = ({ id, name, username, email }: IUserToValue) => ({
+const mapUserToValue = ({ id, name, username, email }: IUserToValue, pendingString: string) => ({
value: `${id || ""}`,
- label: `${name || ""}`,
+ label: `${name || email || ""}${!username ? ` (${pendingString})` : ""}`,
avatar: `${WEBAPP_URL}/${username}/avatar.png`,
email,
});
export const mapMemberToChildrenOption = (
member: EventTypeSetupProps["teamMembers"][number],
- slug: string
+ slug: string,
+ pendingString: string
) => {
return {
slug,
@@ -43,7 +44,7 @@ export const mapMemberToChildrenOption = (
eventTypeSlugs: member.eventTypes ?? [],
},
value: `${member.id ?? ""}`,
- label: member.name ?? "",
+ label: `${member.name || member.email || ""}${!member.username ? ` (${pendingString})` : ""}`,
};
};
@@ -291,9 +292,13 @@ export const EventTeamTab = ({
// description: t("round_robin_description"),
},
];
- const teamMembersOptions = teamMembers.map(mapUserToValue);
- const childrenEventTypeOptions = teamMembers.map((member) => {
- return mapMemberToChildrenOption(member, eventType.slug);
+ const pendingMembers = (member: (typeof teamMembers)[number]) =>
+ !!eventType.team?.parentId || !!member.username;
+ const teamMembersOptions = teamMembers
+ .filter(pendingMembers)
+ .map((member) => mapUserToValue(member, t("pending")));
+ const childrenEventTypeOptions = teamMembers.filter(pendingMembers).map((member) => {
+ return mapMemberToChildrenOption(member, eventType.slug, t("pending"));
});
const isManagedEventType = eventType.schedulingType === SchedulingType.MANAGED;
return (
diff --git a/apps/web/pages/team/[slug].tsx b/apps/web/pages/team/[slug].tsx
index c16c343e44..4dd23b61d8 100644
--- a/apps/web/pages/team/[slug].tsx
+++ b/apps/web/pages/team/[slug].tsx
@@ -130,7 +130,9 @@ function TeamPage({ team, isUnpublished, markdownStrippedBio, isValidOrgDomain }
{ch.name}
- {t("number_member", { count: ch.members.length })}
+ {t("number_member", {
+ count: ch.members.filter((mem) => mem.user.username !== null).length,
+ })}
@@ -138,11 +140,13 @@ function TeamPage({ team, isUnpublished, markdownStrippedBio, isValidOrgDomain }
className="mr-6"
size="sm"
truncateAfter={4}
- items={ch.members.map(({ user: member }) => ({
- alt: member.name || "",
- image: `/${member.username}/avatar.png`,
- title: member.name || "",
- }))}
+ items={ch.members
+ .filter((mem) => mem.user.username !== null)
+ .map(({ user: member }) => ({
+ alt: member.name || "",
+ image: `/${member.username}/avatar.png`,
+ title: member.name || "",
+ }))}
/>
diff --git a/packages/features/eventtypes/components/ChildrenEventTypeSelect.tsx b/packages/features/eventtypes/components/ChildrenEventTypeSelect.tsx
index a7813d427e..e5eac2311a 100644
--- a/packages/features/eventtypes/components/ChildrenEventTypeSelect.tsx
+++ b/packages/features/eventtypes/components/ChildrenEventTypeSelect.tsx
@@ -62,12 +62,12 @@ export const ChildrenEventTypeSelect = ({
size="mdLg"
className="overflow-visible"
imageSrc={`${CAL_URL}/${children.owner.username}/avatar.png`}
- alt={children.owner.name || ""}
+ alt={children.owner.name || children.owner.email || ""}
/>
- {children.owner.name}
+ {children.owner.name || children.owner.email}
{children.owner.membership === MembershipRole.OWNER ? (
{t("owner")}
@@ -77,9 +77,11 @@ export const ChildrenEventTypeSelect = ({
{children.hidden && {t("hidden")}}
-
- {`/${children.owner.username}/${children.slug}`}
-
+ {children.owner.username && (
+
+ {`/${children.owner.username}/${children.slug}`}
+
+ )}
@@ -97,7 +99,7 @@ export const ChildrenEventTypeSelect = ({
- {children.created && (
+ {children.created && children.owner.username && (