From b39eab72e780723f6df36b9a7097f242c45cb3bd Mon Sep 17 00:00:00 2001 From: Romit <85230081+romitg2@users.noreply.github.com> Date: Tue, 8 Jul 2025 13:55:37 +0530 Subject: [PATCH] feat: added option to lock maxactivebookingsperbooker for managed events (#21892) * added option to disable maxactivebookingsperbooker for managed events * chore * update --------- Co-authored-by: Kartik Saini <41051387+kart1ka@users.noreply.github.com> Co-authored-by: unknown Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> --- .../components/tabs/limits/EventLimitsTab.tsx | 5 ++++- .../MaxActiveBookingsPerBookerController.tsx | 18 ++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/packages/features/eventtypes/components/tabs/limits/EventLimitsTab.tsx b/packages/features/eventtypes/components/tabs/limits/EventLimitsTab.tsx index 777345c478..4145e046e6 100644 --- a/packages/features/eventtypes/components/tabs/limits/EventLimitsTab.tsx +++ b/packages/features/eventtypes/components/tabs/limits/EventLimitsTab.tsx @@ -389,6 +389,7 @@ export const EventLimitsTab = ({ eventType, customClassNames }: EventLimitsTabPr const onlyFirstAvailableSlotLocked = shouldLockDisableProps("onlyShowFirstAvailableSlot"); const periodTypeLocked = shouldLockDisableProps("periodType"); const offsetStartLockedProps = shouldLockDisableProps("offsetStart"); + const maxActiveBookingsPerBookerLocked = shouldLockDisableProps("maxActiveBookingsPerBooker"); const [offsetToggle, setOffsetToggle] = useState(formMethods.getValues("offsetStart") > 0); const [maxActiveBookingsPerBookerToggle, setMaxActiveBookingsPerBookerToggle] = useState( @@ -687,7 +688,9 @@ export const EventLimitsTab = ({ eventType, customClassNames }: EventLimitsTabPr ); }} /> - + { diff --git a/packages/features/eventtypes/components/tabs/limits/MaxActiveBookingsPerBookerController.tsx b/packages/features/eventtypes/components/tabs/limits/MaxActiveBookingsPerBookerController.tsx index 75d4f9dc92..03caeb927a 100644 --- a/packages/features/eventtypes/components/tabs/limits/MaxActiveBookingsPerBookerController.tsx +++ b/packages/features/eventtypes/components/tabs/limits/MaxActiveBookingsPerBookerController.tsx @@ -7,7 +7,17 @@ import classNames from "@calcom/ui/classNames"; import { SettingsToggle } from "@calcom/ui/components/form"; import { TextField, CheckboxField } from "@calcom/ui/components/form"; -export default function MaxActiveBookingsPerBookerController() { +type maxActiveBookingsPerBookerLockedProps = { + disabled: boolean; + LockedIcon: false | JSX.Element; + isLocked: boolean; +}; + +export default function MaxActiveBookingsPerBookerController({ + maxActiveBookingsPerBookerLocked, +}: { + maxActiveBookingsPerBookerLocked: maxActiveBookingsPerBookerLockedProps; +}) { const { t } = useLocale(); const formMethods = useFormContext(); @@ -19,6 +29,7 @@ export default function MaxActiveBookingsPerBookerController() { const maxActiveBookingPerBookerOfferReschedule = formMethods.watch( "maxActiveBookingPerBookerOfferReschedule" ); + return ( { onChange(e.target.value === "" ? null : parseInt(e.target.value, 10)); }} @@ -64,6 +77,7 @@ export default function MaxActiveBookingsPerBookerController() { checked={!!maxActiveBookingPerBookerOfferReschedule} descriptionAsLabel description={t("offer_to_reschedule_last_booking")} + disabled={maxActiveBookingsPerBookerLocked.disabled} onChange={(e) => { formMethods.setValue("maxActiveBookingPerBookerOfferReschedule", e.target.checked, { shouldDirty: true,