diff --git a/apps/web/pages/event-types/index.tsx b/apps/web/pages/event-types/index.tsx index 4bb0978e59..87a8037f38 100644 --- a/apps/web/pages/event-types/index.tsx +++ b/apps/web/pages/event-types/index.tsx @@ -391,23 +391,27 @@ export const EventTypeList = ({ group, groupIndex, readOnly, types }: EventTypeL className="relative right-3 top-1" size="sm" truncateAfter={4} - items={type.users.map( - (organizer: { name: string | null; username: string | null }) => ({ - alt: organizer.name || "", - image: `${orgBranding?.fullDomain ?? WEBAPP_URL}/${ - organizer.username - }/avatar.png`, - title: organizer.name || "", - }) - )} + items={ + type?.users + ? type.users.map( + (organizer: { name: string | null; username: string | null }) => ({ + alt: organizer.name || "", + image: `${orgBranding?.fullDomain ?? WEBAPP_URL}/${ + organizer.username + }/avatar.png`, + title: organizer.name || "", + }) + ) + : [] + } /> )} - {isManagedEventType && type.children && ( + {isManagedEventType && type?.children && type.children?.length > 0 && ( ch.users) .map((user: Pick) => ({ alt: user.name || "", diff --git a/packages/features/ee/workflows/components/WorkflowDetailsPage.tsx b/packages/features/ee/workflows/components/WorkflowDetailsPage.tsx index a5950cc49c..6e2d487e17 100644 --- a/packages/features/ee/workflows/components/WorkflowDetailsPage.tsx +++ b/packages/features/ee/workflows/components/WorkflowDetailsPage.tsx @@ -61,7 +61,9 @@ export default function WorkflowDetailsPage(props: Props) { ...options, ...group.eventTypes.map((eventType) => ({ value: String(eventType.id), - label: `${eventType.title} ${eventType.children.length ? `(+${eventType.children.length})` : ``}`, + label: `${eventType.title} ${ + eventType.children && eventType.children.length ? `(+${eventType.children.length})` : `` + }`, })), ]; }, [] as Option[]) || [], diff --git a/packages/trpc/server/routers/viewer/eventTypes/getByViewer.handler.ts b/packages/trpc/server/routers/viewer/eventTypes/getByViewer.handler.ts index a43b9a7a08..d68b8f0826 100644 --- a/packages/trpc/server/routers/viewer/eventTypes/getByViewer.handler.ts +++ b/packages/trpc/server/routers/viewer/eventTypes/getByViewer.handler.ts @@ -52,14 +52,6 @@ const userEventTypeSelect = Prisma.validator()({ users: { select: userSelect, }, - // Temporarily putting this back for testing - children: { - include: { - users: { - select: userSelect, - }, - }, - }, parentId: true, hosts: { select: { @@ -74,13 +66,13 @@ const userEventTypeSelect = Prisma.validator()({ const teamEventTypeSelect = Prisma.validator()({ ...userEventTypeSelect, - // children: { - // include: { - // users: { - // select: userSelect, - // }, - // }, - // }, + children: { + include: { + users: { + select: userSelect, + }, + }, + }, }); export const compareMembership = (mship1: MembershipRole, mship2: MembershipRole) => { @@ -167,11 +159,15 @@ export const getByViewerHandler = async ({ ctx, input }: GetByViewerOptions) => throw new TRPCError({ code: "INTERNAL_SERVER_ERROR" }); } - const mapEventType = (eventType: (typeof user.eventTypes)[number]) => ({ + type UserEventTypes = (typeof user.eventTypes)[number]; + type TeamEventTypeChildren = (typeof user.teams)[number]["team"]["eventTypes"][number]; + + const mapEventType = (eventType: UserEventTypes & Partial) => ({ ...eventType, - safeDescription: markdownToSafeHTML(eventType.description), - users: !!eventType.hosts?.length ? eventType.hosts.map((host) => host.user) : eventType.users, + safeDescription: eventType?.description ? markdownToSafeHTML(eventType.description) : undefined, + users: !!eventType?.hosts?.length ? eventType?.hosts.map((host) => host.user) : eventType.users, metadata: eventType.metadata ? EventTypeMetaDataSchema.parse(eventType.metadata) : undefined, + children: eventType.children, }); const userEventTypes = user.eventTypes.map(mapEventType);