diff --git a/apps/web/components/booking/BookingListItem.tsx b/apps/web/components/booking/BookingListItem.tsx index d0c2f35541..bcb371e690 100644 --- a/apps/web/components/booking/BookingListItem.tsx +++ b/apps/web/components/booking/BookingListItem.tsx @@ -10,6 +10,7 @@ import ViewRecordingsDialog from "@calcom/features/ee/video/ViewRecordingsDialog import classNames from "@calcom/lib/classNames"; import { formatTime } from "@calcom/lib/date-fns"; import getPaymentAppData from "@calcom/lib/getPaymentAppData"; +import { useBookerUrl } from "@calcom/lib/hooks/useBookerUrl"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { getEveryFreqFor } from "@calcom/lib/recurringStrings"; import { BookingStatus } from "@calcom/prisma/enums"; @@ -49,6 +50,8 @@ type BookingItemProps = BookingItem & { function BookingListItem(booking: BookingItemProps) { // Get user so we can determine 12/24 hour format preferences const query = useMeQuery(); + const bookerUrl = useBookerUrl(); + const user = query.data; const { t, @@ -170,7 +173,7 @@ function BookingListItem(booking: BookingItemProps) { id: "reschedule", icon: Clock, label: t("reschedule_booking"), - href: `/reschedule/${booking.uid}${ + href: `${bookerUrl}/reschedule/${booking.uid}${ booking.seatsReferences.length ? `?seatReferenceUid=${getSeatReferenceUid()}` : "" }`, }, diff --git a/apps/web/pages/team/[slug].tsx b/apps/web/pages/team/[slug].tsx index 78eae350b8..8b18720fe7 100644 --- a/apps/web/pages/team/[slug].tsx +++ b/apps/web/pages/team/[slug].tsx @@ -152,9 +152,9 @@ function TeamPage({ team, isUnpublished, markdownStrippedBio, isValidOrgDomain }

- {" " + t("no_teams_yet")} + {" " + t("org_no_teams_yet")}

-

{t("no_teams_yet_description")}

+

{t("org_no_teams_yet_description")}

diff --git a/packages/features/bookings/lib/handleNewBooking.ts b/packages/features/bookings/lib/handleNewBooking.ts index ac74b2312e..f821aab9fd 100644 --- a/packages/features/bookings/lib/handleNewBooking.ts +++ b/packages/features/bookings/lib/handleNewBooking.ts @@ -42,7 +42,6 @@ import { deleteScheduledEmailReminder } from "@calcom/features/ee/workflows/lib/ import { scheduleWorkflowReminders } from "@calcom/features/ee/workflows/lib/reminders/reminderScheduler"; import { deleteScheduledSMSReminder } from "@calcom/features/ee/workflows/lib/reminders/smsReminderManager"; import { deleteScheduledWhatsappReminder } from "@calcom/features/ee/workflows/lib/reminders/whatsappReminderManager"; - import type { GetSubscriberOptions } from "@calcom/features/webhooks/lib/getWebhooks"; import getWebhooks from "@calcom/features/webhooks/lib/getWebhooks"; import { isPrismaObjOrUndefined, parseRecurringEvent } from "@calcom/lib"; @@ -57,6 +56,7 @@ import isOutOfBounds, { BookingDateInPastError } from "@calcom/lib/isOutOfBounds import logger from "@calcom/lib/logger"; import { handlePayment } from "@calcom/lib/payment/handlePayment"; import { checkBookingLimits, checkDurationLimits, getLuckyUser } from "@calcom/lib/server"; +import { getBookerUrl } from "@calcom/lib/server/getBookerUrl"; import { getTranslation } from "@calcom/lib/server/i18n"; import { slugify } from "@calcom/lib/slugify"; import { updateWebUser as syncServicesUpdateWebUser } from "@calcom/lib/sync/SyncServiceManager"; @@ -1012,6 +1012,7 @@ async function handler( "calEventUserFieldsResponses" in reqBody ? reqBody.calEventUserFieldsResponses : null; let evt: CalendarEvent = { + bookerUrl: await getBookerUrl(organizerUser), type: eventType.title, title: getEventName(eventNameObject), //this needs to be either forced in english, or fetched for each attendee and organizer separately description: eventType.description, diff --git a/packages/features/ee/organizations/components/TeamInviteFromOrg.tsx b/packages/features/ee/organizations/components/TeamInviteFromOrg.tsx index 6432149002..a015f38b64 100644 --- a/packages/features/ee/organizations/components/TeamInviteFromOrg.tsx +++ b/packages/features/ee/organizations/components/TeamInviteFromOrg.tsx @@ -2,6 +2,7 @@ import type { PropsWithChildren } from "react"; import { useState } from "react"; import classNames from "@calcom/lib/classNames"; +import { useBookerUrl } from "@calcom/lib/hooks/useBookerUrl"; import type { RouterOutputs } from "@calcom/trpc"; import { Avatar, TextField } from "@calcom/ui"; @@ -19,7 +20,6 @@ export default function TeamInviteFromOrg({ orgMembers, }: TeamInviteFromOrgProps) { const [searchQuery, setSearchQuery] = useState(""); - const filteredMembers = orgMembers?.filter((member) => { if (!searchQuery) { return true; // return all members if searchQuery is empty @@ -65,12 +65,13 @@ function UserToInviteItem({ isSelected: boolean; onChange: () => void; }) { + const bookerUrl = useBookerUrl(); return (
onChange()} // We handle this on click on the div also - for a11y we handle it with label and checkbox below className={classNames( - "flex cursor-pointer items-center rounded-md py-1 px-2", + "flex cursor-pointer items-center rounded-md px-2 py-1", isSelected ? "bg-emphasis" : "hover:bg-subtle " )}>
@@ -78,7 +79,7 @@ function UserToInviteItem({ size="sm" alt="Users avatar" asChild - imageSrc={`/api/user/${member.user.username}`} + imageSrc={`${bookerUrl}/${member.user.username}/avatar.png`} gravatarFallbackMd5="hash" />