diff --git a/apps/web/components/booking/pages/BookingPage.tsx b/apps/web/components/booking/pages/BookingPage.tsx index 063ec6f9..a6e7cd9b 100644 --- a/apps/web/components/booking/pages/BookingPage.tsx +++ b/apps/web/components/booking/pages/BookingPage.tsx @@ -114,7 +114,7 @@ const BookingPage = ({ eventType, booking, profile }: BookingPageProps) => { const eventTypeDetail = { isWeb3Active: false, ...eventType }; - type Location = { type: LocationType; address?: string }; + type Location = { type: LocationType; address?: string; link?: string }; // it would be nice if Prisma at some point in the future allowed for Json; as of now this is not the case. const locations: Location[] = useMemo( () => (eventType.locations as Location[]) || [], @@ -201,6 +201,9 @@ const BookingPage = ({ eventType, booking, profile }: BookingPageProps) => { case LocationType.InPerson: { return locationInfo(locationType)?.address || ""; } + case LocationType.Link: { + return locationInfo(locationType)?.link || ""; + } // Catches all other location types, such as Google Meet, Zoom etc. default: return selectedLocation || ""; diff --git a/apps/web/lib/emails/templates/attendee-scheduled-email.ts b/apps/web/lib/emails/templates/attendee-scheduled-email.ts index 67b8a144..9f8cd49e 100644 --- a/apps/web/lib/emails/templates/attendee-scheduled-email.ts +++ b/apps/web/lib/emails/templates/attendee-scheduled-email.ts @@ -310,12 +310,16 @@ ${getRichDescription(this.calEvent)} protected getLocation(): string { let providerName = this.calEvent.location ? getAppName(this.calEvent.location) : ""; - if (this.calEvent.location && this.calEvent.location.includes("integrations:")) { const location = this.calEvent.location.split(":")[1]; providerName = location[0].toUpperCase() + location.slice(1); } + // If location its a url, probably we should be validating it with a custom library + if (this.calEvent.location && /^https?:\/\//.test(this.calEvent.location)) { + providerName = this.calEvent.location; + } + if (this.calEvent.videoCallData) { const meetingId = this.calEvent.videoCallData.id; const meetingPassword = this.calEvent.videoCallData.password; diff --git a/apps/web/lib/emails/templates/organizer-scheduled-email.ts b/apps/web/lib/emails/templates/organizer-scheduled-email.ts index fe53820f..2fd38896 100644 --- a/apps/web/lib/emails/templates/organizer-scheduled-email.ts +++ b/apps/web/lib/emails/templates/organizer-scheduled-email.ts @@ -307,6 +307,11 @@ ${getRichDescription(this.calEvent)} providerName = location[0].toUpperCase() + location.slice(1); } + // If location its a url, probably we should be validating it with a custom library + if (this.calEvent.location && /^https?:\/\//.test(this.calEvent.location)) { + providerName = this.calEvent.location; + } + if (this.calEvent.videoCallData) { const meetingId = this.calEvent.videoCallData.id; const meetingPassword = this.calEvent.videoCallData.password;