diff --git a/packages/features/bookings/Booker/components/BookEventForm/BookEventForm.tsx b/packages/features/bookings/Booker/components/BookEventForm/BookEventForm.tsx index 434c55c97f..317bffa221 100644 --- a/packages/features/bookings/Booker/components/BookEventForm/BookEventForm.tsx +++ b/packages/features/bookings/Booker/components/BookEventForm/BookEventForm.tsx @@ -51,7 +51,6 @@ export const BookEventForm = ({ const timeslot = useBookerStore((state) => state.selectedTimeslot); const username = useBookerStore((state) => state.username); const isInstantMeeting = useBookerStore((state) => state.isInstantMeeting); - const [expiryTime, setExpiryTime] = useState(); const [responseVercelIdHeader] = useState(null); const { t } = useLocale(); diff --git a/packages/features/bookings/Booker/components/Header.tsx b/packages/features/bookings/Booker/components/Header.tsx index 7f92d8a8a5..a04c1aa0b3 100644 --- a/packages/features/bookings/Booker/components/Header.tsx +++ b/packages/features/bookings/Booker/components/Header.tsx @@ -88,7 +88,7 @@ export function Header({ const isSameYear = () => { return selectedDate.format("YYYY") === endDate.format("YYYY"); }; - const formattedMonth = new Intl.DateTimeFormat(i18n.language, { month: "short" }); + const formattedMonth = new Intl.DateTimeFormat(i18n.language ?? "en", { month: "short" }); const FormattedSelectedDateRange = () => { return (

diff --git a/packages/features/bookings/Booker/components/hooks/useBookings.ts b/packages/features/bookings/Booker/components/hooks/useBookings.ts index b20b41f544..15a2a518e2 100644 --- a/packages/features/bookings/Booker/components/hooks/useBookings.ts +++ b/packages/features/bookings/Booker/components/hooks/useBookings.ts @@ -124,7 +124,7 @@ export const useBookings = ({ event, hashedLink, bookingForm, metadata }: IUseBo date: responseData?.startTime?.toString() || "", duration: validDuration, organizer: { - name: users?.[0].name || "Nameless", + name: users?.[0]?.name || "Nameless", email: responseData?.userPrimaryEmail || responseData.user?.email || "Email-less", timeZone: responseData.user?.timeZone || "Europe/London", }, @@ -137,7 +137,7 @@ export const useBookings = ({ event, hashedLink, bookingForm, metadata }: IUseBo date: responseData?.startTime?.toString() || "", duration: validDuration, organizer: { - name: users?.[0].name || "Nameless", + name: users?.[0]?.name || "Nameless", email: responseData?.userPrimaryEmail || responseData.user?.email || "Email-less", timeZone: responseData.user?.timeZone || "Europe/London", }, diff --git a/packages/features/eventtypes/lib/getPublicEvent.ts b/packages/features/eventtypes/lib/getPublicEvent.ts index 44726c0650..186c5b04d2 100644 --- a/packages/features/eventtypes/lib/getPublicEvent.ts +++ b/packages/features/eventtypes/lib/getPublicEvent.ts @@ -244,7 +244,9 @@ export const getPublicEvent = async ( hosts: hosts, }; - const users = getUsersFromEvent(eventWithUserProfiles) || (await getOwnerFromUsersArray(prisma, event.id)); + const users = + (await getUsersFromEvent(eventWithUserProfiles, prisma)) || + (await getOwnerFromUsersArray(prisma, event.id)); if (users === null) { throw new Error("Event has no owner"); @@ -330,7 +332,7 @@ function getProfileFromEvent(event: Event) { ), }; } -function getUsersFromEvent( +async function getUsersFromEvent( event: Omit & { owner: | (Event["owner"] & { @@ -342,11 +344,15 @@ function getUsersFromEvent( profile: UserProfile; }; })[]; - } + }, + prisma: PrismaClient ) { - const { team, hosts, owner } = event; + const { team, hosts, owner, id } = event; if (team) { - return (hosts || []).filter((host) => host.user.username).map(mapHostsToUsers); + // getOwnerFromUsersArray is used here for backward compatibility when team event type has users[] but not hosts[] + return hosts.length + ? hosts.filter((host) => host.user.username).map(mapHostsToUsers) + : (await getOwnerFromUsersArray(prisma, id)) ?? []; } if (!owner) { return null; diff --git a/packages/trpc/server/routers/viewer/eventTypes/create.handler.ts b/packages/trpc/server/routers/viewer/eventTypes/create.handler.ts index ac7277f2cc..2bf21f749c 100644 --- a/packages/trpc/server/routers/viewer/eventTypes/create.handler.ts +++ b/packages/trpc/server/routers/viewer/eventTypes/create.handler.ts @@ -56,8 +56,8 @@ export const createHandler = async ({ ctx, input }: CreateOptions) => { ...rest, owner: teamId ? undefined : { connect: { id: userId } }, metadata: (metadata as Prisma.InputJsonObject) ?? undefined, - // Only connecting the current user for non-managed event type - users: isManagedEventType ? undefined : { connect: { id: userId } }, + // Only connecting the current user for non-managed event types and non team event types + users: isManagedEventType || schedulingType ? undefined : { connect: { id: userId } }, locations, };