From 2918a34e1a9b8858994c6c46383de4ce049f1ca3 Mon Sep 17 00:00:00 2001 From: Hariom Balhara Date: Thu, 13 Jul 2023 19:22:21 +0530 Subject: [PATCH] fix: More instances of Avatar and booker links fixed (#10083) --- .../components/booking/BookingListItem.tsx | 5 ++- apps/web/pages/team/[slug].tsx | 4 +-- .../features/bookings/lib/handleNewBooking.ts | 3 +- .../components/TeamInviteFromOrg.tsx | 7 ++-- .../features/ee/organizations/hooks/index.ts | 4 ++- .../ee/organizations/lib/orgDomains.ts | 1 + .../ee/teams/components/AddNewTeamMembers.tsx | 5 +-- .../insights/filters/UsersListInTeam.tsx | 5 +-- .../features/webhooks/pages/webhooks-view.tsx | 4 ++- packages/lib/CalEventParser.ts | 6 ++-- packages/lib/hooks/useBookerUrl.ts | 7 ++++ packages/lib/server/getBookerUrl.ts | 7 ++++ packages/lib/server/getBrand.ts | 32 +++++++++++++++++++ .../teamsAndUserProfilesQuery.handler.ts | 9 ++++-- .../viewer/eventTypes/getByViewer.handler.ts | 5 ++- .../viewer/organizations/getBrand.handler.ts | 29 ++--------------- .../viewer/webhook/getByViewer.handler.ts | 9 +++--- packages/types/Calendar.d.ts | 3 ++ .../components/createButton/CreateButton.tsx | 6 ++-- 19 files changed, 98 insertions(+), 53 deletions(-) create mode 100644 packages/lib/hooks/useBookerUrl.ts create mode 100644 packages/lib/server/getBookerUrl.ts create mode 100644 packages/lib/server/getBrand.ts 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" />