From 08d232a816e6139b12c21214ab48e7be3dcf0588 Mon Sep 17 00:00:00 2001 From: Keith Williams Date: Thu, 1 May 2025 18:51:20 -0300 Subject: [PATCH] revert: "feat: Ability to set a locked timezone for event type (#20425)" (#21066) This reverts commit 03240709dc7586f90f15e057aca829dbaf6585fe. --- .../server/lib/[user]/getServerSideProps.ts | 1 - .../test/lib/handleChildrenEventTypes.test.ts | 12 -------- docs/platform/guides/teams-setup.mdx | 2 +- .../bookings/Booker/components/EventMeta.tsx | 10 +++---- .../handleNewBooking/getEventTypesFromDB.ts | 1 - packages/features/bookings/types.ts | 1 - .../tabs/advanced/EventAdvancedTab.tsx | 30 ++----------------- .../features/eventtypes/lib/getPublicEvent.ts | 1 - packages/features/eventtypes/lib/types.ts | 1 - packages/lib/defaultEvents.ts | 1 - .../lib/event-types/getEventTypesPublic.ts | 6 ++-- packages/lib/server/eventTypeSelect.ts | 1 - packages/lib/server/repository/eventType.ts | 1 - packages/lib/test/builder.ts | 1 - .../event-types/hooks/useEventTypeForm.ts | 1 - .../migration.sql | 2 -- packages/prisma/schema.prisma | 1 - packages/prisma/selects/event-types.ts | 2 -- packages/prisma/zod-utils.ts | 1 - 19 files changed, 11 insertions(+), 65 deletions(-) delete mode 100644 packages/prisma/migrations/20250328085029_event_locked_timezone/migration.sql diff --git a/apps/web/server/lib/[user]/getServerSideProps.ts b/apps/web/server/lib/[user]/getServerSideProps.ts index 4b1a8b8c5a..9b39ecdf69 100644 --- a/apps/web/server/lib/[user]/getServerSideProps.ts +++ b/apps/web/server/lib/[user]/getServerSideProps.ts @@ -59,7 +59,6 @@ type UserPageProps = { | "length" | "hidden" | "lockTimeZoneToggleOnBookingPage" - | "lockedTimeZone" | "requiresConfirmation" | "canSendCalVideoTranscriptionEmails" | "requiresBookerEmailVerification" diff --git a/apps/web/test/lib/handleChildrenEventTypes.test.ts b/apps/web/test/lib/handleChildrenEventTypes.test.ts index 82021c88ad..281a37d8db 100644 --- a/apps/web/test/lib/handleChildrenEventTypes.test.ts +++ b/apps/web/test/lib/handleChildrenEventTypes.test.ts @@ -111,7 +111,6 @@ describe("handleChildrenEventTypes", () => { timeZone, requiresBookerEmailVerification, lockTimeZoneToggleOnBookingPage, - lockedTimeZone, useEventTypeDestinationCalendarEmail, secondaryEmailId, autoTranslateDescriptionEnabled, @@ -137,7 +136,6 @@ describe("handleChildrenEventTypes", () => { parentId: 1, users: { connect: [{ id: 4 }] }, lockTimeZoneToggleOnBookingPage: false, - lockedTimeZone: "Europe/London", requiresBookerEmailVerification: false, instantMeetingScheduleId: undefined, bookingLimits: undefined, @@ -170,7 +168,6 @@ describe("handleChildrenEventTypes", () => { scheduleId, requiresBookerEmailVerification, lockTimeZoneToggleOnBookingPage, - lockedTimeZone, useEventTypeDestinationCalendarEmail, secondaryEmailId, ...evType @@ -201,7 +198,6 @@ describe("handleChildrenEventTypes", () => { locations: [], scheduleId: null, lockTimeZoneToggleOnBookingPage: false, - lockedTimeZone: "Europe/London", requiresBookerEmailVerification: false, hashedLink: { deleteMany: {}, @@ -276,7 +272,6 @@ describe("handleChildrenEventTypes", () => { timeZone, requiresBookerEmailVerification, lockTimeZoneToggleOnBookingPage, - lockedTimeZone, useEventTypeDestinationCalendarEmail, secondaryEmailId, autoTranslateDescriptionEnabled, @@ -309,7 +304,6 @@ describe("handleChildrenEventTypes", () => { customReplyToEmail: null, instantMeetingScheduleId: undefined, lockTimeZoneToggleOnBookingPage: false, - lockedTimeZone: "Europe/London", requiresBookerEmailVerification: false, userId: 4, workflows: undefined, @@ -336,7 +330,6 @@ describe("handleChildrenEventTypes", () => { userId, requiresBookerEmailVerification, lockTimeZoneToggleOnBookingPage, - lockedTimeZone, useEventTypeDestinationCalendarEmail, secondaryEmailId, ...evType @@ -370,7 +363,6 @@ describe("handleChildrenEventTypes", () => { deleteMany: {}, }, lockTimeZoneToggleOnBookingPage: false, - lockedTimeZone: "Europe/London", requiresBookerEmailVerification: false, instantMeetingScheduleId: undefined, }, @@ -401,7 +393,6 @@ describe("handleChildrenEventTypes", () => { // eslint-disable-next-line @typescript-eslint/no-unused-vars requiresBookerEmailVerification, lockTimeZoneToggleOnBookingPage, - lockedTimeZone, useEventTypeDestinationCalendarEmail, secondaryEmailId, autoTranslateDescriptionEnabled, @@ -427,7 +418,6 @@ describe("handleChildrenEventTypes", () => { schedulingType: SchedulingType.MANAGED, requiresBookerEmailVerification: false, lockTimeZoneToggleOnBookingPage: false, - lockedTimeZone: "Europe/London", useEventTypeDestinationCalendarEmail: false, workflows: [], parentId: 1, @@ -462,7 +452,6 @@ describe("handleChildrenEventTypes", () => { instantMeetingScheduleId: undefined, locations: [], lockTimeZoneToggleOnBookingPage: false, - lockedTimeZone: "Europe/London", requiresBookerEmailVerification: false, parentId: 1, userId: 5, @@ -489,7 +478,6 @@ describe("handleChildrenEventTypes", () => { customReplyToEmail: null, rrSegmentQueryValue: undefined, lockTimeZoneToggleOnBookingPage: false, - lockedTimeZone: "Europe/London", requiresBookerEmailVerification: false, hashedLink: { deleteMany: {}, diff --git a/docs/platform/guides/teams-setup.mdx b/docs/platform/guides/teams-setup.mdx index 2fb88f6836..877396dcd7 100644 --- a/docs/platform/guides/teams-setup.mdx +++ b/docs/platform/guides/teams-setup.mdx @@ -245,4 +245,4 @@ export default function TeamEvent(){ - + \ No newline at end of file diff --git a/packages/features/bookings/Booker/components/EventMeta.tsx b/packages/features/bookings/Booker/components/EventMeta.tsx index 31e7e82d7f..c4e2c4d9dd 100644 --- a/packages/features/bookings/Booker/components/EventMeta.tsx +++ b/packages/features/bookings/Booker/components/EventMeta.tsx @@ -13,6 +13,7 @@ import { useTimePreferences } from "@calcom/features/bookings/lib"; import type { BookerEvent } from "@calcom/features/bookings/types"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { markdownToSafeHTMLClient } from "@calcom/lib/markdownToSafeHTMLClient"; +import { CURRENT_TIMEZONE } from "@calcom/lib/timezoneConstants"; import type { EventTypeTranslation } from "@calcom/prisma/client"; import { EventTypeAutoTranslatedField } from "@calcom/prisma/enums"; @@ -56,7 +57,6 @@ export const EventMeta = ({ event?: Pick< BookerEvent, | "lockTimeZoneToggleOnBookingPage" - | "lockedTimeZone" | "schedule" | "seatsPerTimeSlot" | "subsetOfUsers" @@ -109,9 +109,9 @@ export const EventMeta = ({ ); useEffect(() => { - //In case the event has lockTimeZone enabled ,set the timezone to event's locked timezone - if (event && event?.lockTimeZoneToggleOnBookingPage && event?.lockedTimeZone) { - setTimezone(event?.lockedTimeZone); + //In case the event has lockTimeZone enabled ,set the timezone to event's attached availability timezone + if (event && event?.lockTimeZoneToggleOnBookingPage && event?.schedule?.timeZone) { + setTimezone(event.schedule?.timeZone); } }, [event, setTimezone]); @@ -225,7 +225,7 @@ export const EventMeta = ({ indicatorsContainer: () => "ml-auto", container: () => "max-w-full", }} - value={event.lockTimeZoneToggleOnBookingPage ? event.lockedTimeZone : timezone} + value={event.lockTimeZoneToggleOnBookingPage ? CURRENT_TIMEZONE : timezone} onChange={({ value }) => { setTimezone(value); setBookerStoreTimezone(value); diff --git a/packages/features/bookings/lib/handleNewBooking/getEventTypesFromDB.ts b/packages/features/bookings/lib/handleNewBooking/getEventTypesFromDB.ts index 4f33094694..277fc2451f 100644 --- a/packages/features/bookings/lib/handleNewBooking/getEventTypesFromDB.ts +++ b/packages/features/bookings/lib/handleNewBooking/getEventTypesFromDB.ts @@ -58,7 +58,6 @@ export const getEventTypesFromDB = async (eventTypeId: number) => { periodDays: true, periodCountCalendarDays: true, lockTimeZoneToggleOnBookingPage: true, - lockedTimeZone: true, requiresConfirmation: true, requiresConfirmationForFreeEmail: true, requiresBookerEmailVerification: true, diff --git a/packages/features/bookings/types.ts b/packages/features/bookings/types.ts index 2490b6c8f9..464b454582 100644 --- a/packages/features/bookings/types.ts +++ b/packages/features/bookings/types.ts @@ -46,7 +46,6 @@ export type BookerEvent = Pick< | "price" | "currency" | "lockTimeZoneToggleOnBookingPage" - | "lockedTimeZone" | "schedule" | "seatsPerTimeSlot" | "title" diff --git a/packages/features/eventtypes/components/tabs/advanced/EventAdvancedTab.tsx b/packages/features/eventtypes/components/tabs/advanced/EventAdvancedTab.tsx index 86dd902570..be706ca4a0 100644 --- a/packages/features/eventtypes/components/tabs/advanced/EventAdvancedTab.tsx +++ b/packages/features/eventtypes/components/tabs/advanced/EventAdvancedTab.tsx @@ -12,7 +12,6 @@ import { } from "@calcom/atoms/selected-calendars/wrappers/SelectedCalendarsSettingsWebWrapper"; import getLocationsOptionsForSelect from "@calcom/features/bookings/lib/getLocationOptionsForSelect"; import DestinationCalendarSelector from "@calcom/features/calendars/DestinationCalendarSelector"; -import { TimezoneSelect } from "@calcom/features/components/timezone-select"; import useLockedFieldsManager from "@calcom/features/ee/managed-event-types/hooks/useLockedFieldsManager"; import { allowDisablingAttendeeConfirmationEmails, @@ -1003,8 +1002,7 @@ export const EventAdvancedTab = ({ toggleSwitchAtTheEnd={true} switchContainerClassName={classNames( "border-subtle rounded-lg border py-6 px-4 sm:px-6", - customClassNames?.timezoneLock?.container, - formMethods.getValues("lockTimeZoneToggleOnBookingPage") && "rounded-b-none" + customClassNames?.timezoneLock?.container )} title={t("lock_timezone_toggle_on_booking_page")} {...lockTimeZoneToggleOnBookingPageLocked} @@ -1012,31 +1010,7 @@ export const EventAdvancedTab = ({ checked={value} onCheckedChange={(e) => onChange(e)} data-testid="lock-timezone-toggle" - childrenClassName="lg:ml-0"> -
-
- ( - <> - - { - if (event) - formMethods.setValue("lockedTimeZone", event.value, { shouldDirty: true }); - }} - /> - - )} - /> -
-
- + /> )} /> { disableGuests: true, metadata: true, lockTimeZoneToggleOnBookingPage: true, - lockedTimeZone: true, requiresConfirmation: true, autoTranslateDescriptionEnabled: true, fieldTranslations: { diff --git a/packages/features/eventtypes/lib/types.ts b/packages/features/eventtypes/lib/types.ts index 181a070669..5f98411b6b 100644 --- a/packages/features/eventtypes/lib/types.ts +++ b/packages/features/eventtypes/lib/types.ts @@ -80,7 +80,6 @@ export type FormValues = { description: string; disableGuests: boolean; lockTimeZoneToggleOnBookingPage: boolean; - lockedTimeZone: string; requiresConfirmation: boolean; requiresConfirmationWillBlockSlot: boolean; requiresConfirmationForFreeEmail: boolean; diff --git a/packages/lib/defaultEvents.ts b/packages/lib/defaultEvents.ts index f0b9e9a0c7..2201f054fe 100644 --- a/packages/lib/defaultEvents.ts +++ b/packages/lib/defaultEvents.ts @@ -100,7 +100,6 @@ const commons = { destinationCalendar: null, team: null, lockTimeZoneToggleOnBookingPage: false, - lockedTimeZone: "Europe/London", requiresConfirmation: false, requiresConfirmationForFreeEmail: false, requiresBookerEmailVerification: false, diff --git a/packages/lib/event-types/getEventTypesPublic.ts b/packages/lib/event-types/getEventTypesPublic.ts index a884d21abe..34f462d2e2 100644 --- a/packages/lib/event-types/getEventTypesPublic.ts +++ b/packages/lib/event-types/getEventTypesPublic.ts @@ -35,14 +35,14 @@ const getEventTypesWithHiddenFromDB = async (userId: number) => { const eventTypes = await prisma.$queryRaw` SELECT data."id", data."title", data."description", data."length", data."schedulingType"::text, data."recurringEvent", data."slug", data."hidden", data."price", data."currency", - data."lockTimeZoneToggleOnBookingPage", data."lockedTimeZone", data."requiresConfirmation", data."requiresBookerEmailVerification", + data."lockTimeZoneToggleOnBookingPage", data."requiresConfirmation", data."requiresBookerEmailVerification", data."metadata", data."canSendCalVideoTranscriptionEmails" FROM ( SELECT "EventType"."id", "EventType"."title", "EventType"."description", "EventType"."position", "EventType"."length", "EventType"."schedulingType"::text, "EventType"."recurringEvent", "EventType"."slug", "EventType"."hidden", "EventType"."price", "EventType"."currency", - "EventType"."lockTimeZoneToggleOnBookingPage", "EventType"."lockedTimeZone", "EventType"."requiresConfirmation", + "EventType"."lockTimeZoneToggleOnBookingPage", "EventType"."requiresConfirmation", "EventType"."requiresBookerEmailVerification", "EventType"."metadata", "EventType"."canSendCalVideoTranscriptionEmails" FROM "EventType" @@ -52,7 +52,7 @@ const getEventTypesWithHiddenFromDB = async (userId: number) => { "EventType"."position", "EventType"."length", "EventType"."schedulingType"::text, "EventType"."recurringEvent", "EventType"."slug", "EventType"."hidden", "EventType"."price", "EventType"."currency", - "EventType"."lockTimeZoneToggleOnBookingPage", "EventType"."lockedTimeZone", "EventType"."requiresConfirmation", + "EventType"."lockTimeZoneToggleOnBookingPage", "EventType"."requiresConfirmation", "EventType"."requiresBookerEmailVerification", "EventType"."metadata", "EventType"."canSendCalVideoTranscriptionEmails" FROM "EventType" diff --git a/packages/lib/server/eventTypeSelect.ts b/packages/lib/server/eventTypeSelect.ts index 38b8ad6e18..53ca0cfad2 100644 --- a/packages/lib/server/eventTypeSelect.ts +++ b/packages/lib/server/eventTypeSelect.ts @@ -28,7 +28,6 @@ export const eventTypeSelect = Prisma.validator()({ periodDays: true, periodCountCalendarDays: true, lockTimeZoneToggleOnBookingPage: true, - lockedTimeZone: true, requiresBookerEmailVerification: true, disableGuests: true, disableCancelling: true, diff --git a/packages/lib/server/repository/eventType.ts b/packages/lib/server/repository/eventType.ts index 53a816c54f..120574d138 100644 --- a/packages/lib/server/repository/eventType.ts +++ b/packages/lib/server/repository/eventType.ts @@ -487,7 +487,6 @@ export class EventTypeRepository { periodEndDate: true, periodCountCalendarDays: true, lockTimeZoneToggleOnBookingPage: true, - lockedTimeZone: true, requiresConfirmation: true, requiresConfirmationForFreeEmail: true, canSendCalVideoTranscriptionEmails: true, diff --git a/packages/lib/test/builder.ts b/packages/lib/test/builder.ts index cbd6e5552b..7640d0eba6 100644 --- a/packages/lib/test/builder.ts +++ b/packages/lib/test/builder.ts @@ -111,7 +111,6 @@ export const buildEventType = (eventType?: Partial): EventType => { periodCountCalendarDays: null, recurringEvent: null, lockTimeZoneToggleOnBookingPage: false, - lockedTimeZone: "Europe/London", requiresConfirmation: false, requiresConfirmationForFreeEmail: false, requiresConfirmationWillBlockSlot: false, diff --git a/packages/platform/atoms/event-types/hooks/useEventTypeForm.ts b/packages/platform/atoms/event-types/hooks/useEventTypeForm.ts index 7fbbf50ff7..a8fe9f9669 100644 --- a/packages/platform/atoms/event-types/hooks/useEventTypeForm.ts +++ b/packages/platform/atoms/event-types/hooks/useEventTypeForm.ts @@ -53,7 +53,6 @@ export const useEventTypeForm = ({ seatsShowAttendees: eventType.seatsShowAttendees, seatsShowAvailabilityCount: eventType.seatsShowAvailabilityCount, lockTimeZoneToggleOnBookingPage: eventType.lockTimeZoneToggleOnBookingPage, - lockedTimeZone: eventType.lockedTimeZone, locations: eventType.locations || [], destinationCalendar: eventType.destinationCalendar, recurringEvent: eventType.recurringEvent || null, diff --git a/packages/prisma/migrations/20250328085029_event_locked_timezone/migration.sql b/packages/prisma/migrations/20250328085029_event_locked_timezone/migration.sql deleted file mode 100644 index d7436146e5..0000000000 --- a/packages/prisma/migrations/20250328085029_event_locked_timezone/migration.sql +++ /dev/null @@ -1,2 +0,0 @@ --- AlterTable -ALTER TABLE "EventType" ADD COLUMN "lockedTimeZone" TEXT NOT NULL DEFAULT 'Europe/London'; diff --git a/packages/prisma/schema.prisma b/packages/prisma/schema.prisma index e4399dfddf..5b4a937d7e 100644 --- a/packages/prisma/schema.prisma +++ b/packages/prisma/schema.prisma @@ -108,7 +108,6 @@ model EventType { periodDays Int? periodCountCalendarDays Boolean? lockTimeZoneToggleOnBookingPage Boolean @default(false) - lockedTimeZone String @default("Europe/London") requiresConfirmation Boolean @default(false) requiresConfirmationWillBlockSlot Boolean @default(false) requiresConfirmationForFreeEmail Boolean @default(false) diff --git a/packages/prisma/selects/event-types.ts b/packages/prisma/selects/event-types.ts index e5c79bea22..75c2dd83fa 100644 --- a/packages/prisma/selects/event-types.ts +++ b/packages/prisma/selects/event-types.ts @@ -12,7 +12,6 @@ export const baseEventTypeSelect = Prisma.validator()({ price: true, currency: true, lockTimeZoneToggleOnBookingPage: true, - lockedTimeZone: true, requiresConfirmation: true, requiresBookerEmailVerification: true, canSendCalVideoTranscriptionEmails: true, @@ -32,7 +31,6 @@ export const bookEventTypeSelect = Prisma.validator()({ periodEndDate: true, recurringEvent: true, lockTimeZoneToggleOnBookingPage: true, - lockedTimeZone: true, requiresConfirmation: true, canSendCalVideoTranscriptionEmails: true, requiresBookerEmailVerification: true, diff --git a/packages/prisma/zod-utils.ts b/packages/prisma/zod-utils.ts index 0c0753af7d..6fbaafa8dc 100644 --- a/packages/prisma/zod-utils.ts +++ b/packages/prisma/zod-utils.ts @@ -660,7 +660,6 @@ export const allManagedEventTypeProps: { [k in keyof Omit