diff --git a/apps/web/components/eventtype/EventAdvancedTab.tsx b/apps/web/components/eventtype/EventAdvancedTab.tsx index c95d28a4f9..61ca10dcbb 100644 --- a/apps/web/components/eventtype/EventAdvancedTab.tsx +++ b/apps/web/components/eventtype/EventAdvancedTab.tsx @@ -33,10 +33,13 @@ import { showToast, TextField, Tooltip, + Select, } from "@calcom/ui"; import { Copy, Edit } from "@calcom/ui/components/icon"; import { IS_VISUAL_REGRESSION_TESTING } from "@calcom/web/constants"; +import InfoBadge from "@components/ui/InfoBadge"; + import RequiresConfirmationController from "./RequiresConfirmationController"; const CustomEventTypeModal = dynamic(() => import("@components/eventtype/CustomEventTypeModal")); @@ -58,7 +61,9 @@ export const EventAdvancedTab = ({ eventType, team }: Pick workflowOnEventType.workflow); @@ -123,6 +128,24 @@ export const EventAdvancedTab = ({ eventType, team }: Pick setShowEventNameTip(false); const setEventName = (value: string) => formMethods.setValue("eventName", value); + + const emailMap = new Map(); + const calendarEmails = + connectedCalendarsQuery.data?.connectedCalendars + .map((selectedCalendar) => ({ + label: selectedCalendar.primary?.email || "", + value: selectedCalendar.primary?.email || "", + })) + .filter((email) => { + const mapValue = emailMap.get(email.value); + if (!mapValue) { + emailMap.set(email.label, email.value); + return true; + } + }) ?? []; + + const options = [...(user ? [{ label: user.email, value: user.email }] : []), ...calendarEmails]; + return (
{/** @@ -179,11 +202,64 @@ export const EventAdvancedTab = ({ eventType, team }: Pick
+ + {!!connectedCalendarsQuery.data?.connectedCalendars.length && ( + ( + <> + + ) + } + onCheckedChange={() => { + setUseAddToCalendarEmail(!useAddToCalendarEmail); + + if (!useAddToCalendarEmail) { + formMethods.setValue("metadata.useAddToCalendarEmail", true); + } else { + formMethods.setValue("metadata.useAddToCalendarEmail", false); + } + }}> +
+