From 16eb96e27d0bc1cd86a9e88a90740bb51cc726a0 Mon Sep 17 00:00:00 2001 From: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> Date: Tue, 10 Feb 2026 15:41:00 +0100 Subject: [PATCH] fix: update booking page terms text to use APP_NAME instead of "our" (#27834) * fix: update booking page terms text to use APP_NAME instead of 'our' Co-Authored-By: carina@cal.com * remove changes for platform booker --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: CarinaWolli --- .../BookEventForm/BookEventForm.tsx | 88 +++++++++++++------ apps/web/modules/signup-view.tsx | 1 + apps/web/public/static/locales/en/common.json | 2 +- 3 files changed, 65 insertions(+), 26 deletions(-) diff --git a/apps/web/modules/bookings/components/BookEventForm/BookEventForm.tsx b/apps/web/modules/bookings/components/BookEventForm/BookEventForm.tsx index 82ecb7beed..6d0a65536f 100644 --- a/apps/web/modules/bookings/components/BookEventForm/BookEventForm.tsx +++ b/apps/web/modules/bookings/components/BookEventForm/BookEventForm.tsx @@ -8,7 +8,11 @@ import { useIsPlatformBookerEmbed } from "@calcom/atoms/hooks/useIsPlatformBooke import { useBookerStoreContext } from "@calcom/features/bookings/Booker/BookerStoreProvider"; import type { BookerEvent } from "@calcom/features/bookings/types"; import ServerTrans from "@calcom/lib/components/ServerTrans"; -import { WEBSITE_PRIVACY_POLICY_URL, WEBSITE_TERMS_URL } from "@calcom/lib/constants"; +import { + APP_NAME, + WEBSITE_PRIVACY_POLICY_URL, + WEBSITE_TERMS_URL, +} from "@calcom/lib/constants"; import { ErrorCode } from "@calcom/lib/errorCodes"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import type { TimeFormat } from "@calcom/lib/timeFormat"; @@ -20,7 +24,10 @@ import { Form } from "@calcom/ui/components/form"; import { formatEventFromTime } from "@calcom/features/bookings/Booker/utils/dates"; import { useBookerTime } from "@calcom/features/bookings/Booker/hooks/useBookerTime"; import type { UseBookingFormReturnType } from "@calcom/features/bookings/Booker/hooks/useBookingForm"; -import type { IUseBookingErrors, IUseBookingLoadingStates } from "../../hooks/useBookings"; +import type { + IUseBookingErrors, + IUseBookingLoadingStates, +} from "../../hooks/useBookings"; import { BookingFields } from "./BookingFields"; import { FormSkeleton } from "./Skeleton"; @@ -68,7 +75,10 @@ export const BookEventForm = ({ eventQuery: { isError: boolean; isPending: boolean; - data?: Pick | null; + data?: Pick< + BookerEvent, + "price" | "currency" | "metadata" | "bookingFields" | "locations" + > | null; }; }) => { const eventType = eventQuery.data; @@ -76,7 +86,9 @@ export const BookEventForm = ({ const bookingData = useBookerStoreContext((state) => state.bookingData); const rescheduleUid = useBookerStoreContext((state) => state.rescheduleUid); const username = useBookerStoreContext((state) => state.username); - const isInstantMeeting = useBookerStoreContext((state) => state.isInstantMeeting); + const isInstantMeeting = useBookerStoreContext( + (state) => state.isInstantMeeting + ); const isPlatformBookerEmbed = useIsPlatformBookerEmbed(); const { timeFormat, timezone } = useBookerTime(); @@ -86,7 +98,11 @@ export const BookEventForm = ({ const isPaidEvent = useMemo(() => { if (!eventType?.price) return false; const paymentAppData = getPaymentAppData(eventType); - return eventType?.price > 0 && !Number.isNaN(paymentAppData.price) && paymentAppData.price > 0; + return ( + eventType?.price > 0 && + !Number.isNaN(paymentAppData.price) && + paymentAppData.price > 0 + ); }, [eventType]); const paymentCurrency = useMemo(() => { @@ -94,7 +110,8 @@ export const BookEventForm = ({ return getPaymentAppData(eventType)?.currency || "USD"; }, [eventType]); - if (eventQuery.isError) return ; + if (eventQuery.isError) + return ; if (eventQuery.isPending || !eventQuery.data) return ; if (!timeslot) return ( @@ -115,9 +132,9 @@ export const BookEventForm = ({ const watchedCfToken = bookingForm.watch("cfToken"); return ( -
+
{ // Form data is saved in store. This way when user navigates back to // still change the timeslot, and comes back to the form, all their values @@ -127,7 +144,8 @@ export const BookEventForm = ({ }} form={bookingForm} handleSubmit={onSubmit} - noValidate> + noValidate + > -1)} fields={eventType.bookingFields} @@ -169,7 +187,8 @@ export const BookEventForm = ({ key="please-select-a-new-time-button" type="button" className="underline" - onClick={onCancel}> + onClick={onCancel} + > Please select a new time , ]} @@ -180,23 +199,26 @@ export const BookEventForm = ({ ) : null} {!isPlatform && ( -
+
+ target="_blank" + > Terms , + target="_blank" + > Privacy Policy. , ]} @@ -205,13 +227,14 @@ export const BookEventForm = ({ )} {isPlatformBookerEmbed && ( -
+
{t("proceeding_agreement")}{" "} + target="_blank" + > {t("terms")} {" "} {t("and")}{" "} @@ -219,15 +242,20 @@ export const BookEventForm = ({ className="text-emphasis hover:underline" key="privacy" href={`${WEBSITE_PRIVACY_POLICY_URL}`} - target="_blank"> + target="_blank" + > {t("privacy_policy")} .
)} -
+
{isInstantMeeting ? ( - ) : ( @@ -238,7 +266,8 @@ export const BookEventForm = ({ type="button" onClick={onCancel} data-testid="back" - className={classNames?.backButton}> + className={classNames?.backButton} + > {t("back")} )} @@ -247,7 +276,9 @@ export const BookEventForm = ({ type="submit" color="primary" disabled={ - (!!shouldRenderCaptcha && !watchedCfToken) || isTimeslotUnavailable || confirmButtonDisabled + (!!shouldRenderCaptcha && !watchedCfToken) || + isTimeslotUnavailable || + confirmButtonDisabled } loading={ loadingStates.creatingBooking || @@ -256,8 +287,11 @@ export const BookEventForm = ({ } className={classNames?.confirmButton} data-testid={ - rescheduleUid && bookingData ? "confirm-reschedule-button" : "confirm-book-button" - }> + rescheduleUid && bookingData + ? "confirm-reschedule-button" + : "confirm-book-button" + } + > {rescheduleUid && bookingData ? t("reschedule") : renderConfirmNotVerifyEmailButtonCond @@ -318,15 +352,19 @@ const getError = ({ } const messageKey = - error.message === ErrorCode.BookerLimitExceeded ? "booker_upcoming_limit_reached" : error.message; + error.message === ErrorCode.BookerLimitExceeded + ? "booker_upcoming_limit_reached" + : error.message; return error?.message ? ( <> {responseVercelIdHeader ?? ""} {t(messageKey, { date, count })} {error.data?.traceId && ( -
+
{t("trace_reference_id")}: - {error.data.traceId} + + {error.data.traceId} +
)} diff --git a/apps/web/modules/signup-view.tsx b/apps/web/modules/signup-view.tsx index f287ff9e33..1bdb5b2863 100644 --- a/apps/web/modules/signup-view.tsx +++ b/apps/web/modules/signup-view.tsx @@ -732,6 +732,7 @@ export default function Signup({ Terms and <1>Privacy Policy.", + "signing_up_terms": "By proceeding, you agree to {{appName}}'s <0>Terms and <1>Privacy Policy.", "proceeding_agreement": "By proceeding, you agree to our", "terms": "Terms", "always_show_x_days": "Always {{x}} days available",