diff --git a/packages/platform/atoms/calendar-settings/wrappers/CalendarSettingsPlatformWrapper.tsx b/packages/platform/atoms/calendar-settings/wrappers/CalendarSettingsPlatformWrapper.tsx
index f09343fba4..917c25bdea 100644
--- a/packages/platform/atoms/calendar-settings/wrappers/CalendarSettingsPlatformWrapper.tsx
+++ b/packages/platform/atoms/calendar-settings/wrappers/CalendarSettingsPlatformWrapper.tsx
@@ -10,23 +10,27 @@ type CalendarSettingsPlatformWrapperProps = {
};
calendarRedirectUrls?: CalendarRedirectUrls;
allowDelete?: boolean;
+ isDryRun?: boolean;
};
export const CalendarSettingsPlatformWrapper = ({
classNames,
calendarRedirectUrls,
allowDelete = true,
+ isDryRun,
}: CalendarSettingsPlatformWrapperProps) => {
return (
>}
classNames={classNames?.destinationCalendarSettingsCustomClassnames}
+ isDryRun={isDryRun}
/>
);
diff --git a/packages/platform/atoms/destination-calendar/wrappers/DestinationCalendarSettingsPlatformWrapper.tsx b/packages/platform/atoms/destination-calendar/wrappers/DestinationCalendarSettingsPlatformWrapper.tsx
index ae42a80e1c..cc1db9571b 100644
--- a/packages/platform/atoms/destination-calendar/wrappers/DestinationCalendarSettingsPlatformWrapper.tsx
+++ b/packages/platform/atoms/destination-calendar/wrappers/DestinationCalendarSettingsPlatformWrapper.tsx
@@ -6,9 +6,11 @@ import { DestinationCalendarSettings } from "../DestinationCalendar";
export const DestinationCalendarSettingsPlatformWrapper = ({
statusLoader,
classNames = "mx-5",
+ isDryRun = false,
}: {
statusLoader?: JSX.Element;
classNames?: string;
+ isDryRun?: boolean;
}) => {
const calendars = useConnectedCalendars({});
const { mutate: updateDestinationCalendars, isPending: isUpdatingCalendar } =
@@ -39,11 +41,13 @@ export const DestinationCalendarSettingsPlatformWrapper = ({
hidePlaceholder
hideAdvancedText
onChange={async ({ externalId, integration, delegationCredentialId }) => {
- await updateDestinationCalendars({
- integration,
- externalId,
- delegationCredentialId,
- });
+ if (!isDryRun) {
+ await updateDestinationCalendars({
+ integration,
+ externalId,
+ delegationCredentialId,
+ });
+ }
}}
isPending={isUpdatingCalendar}
/>
diff --git a/packages/platform/atoms/selected-calendars/wrappers/SelectedCalendarsSettingsPlatformWrapper.tsx b/packages/platform/atoms/selected-calendars/wrappers/SelectedCalendarsSettingsPlatformWrapper.tsx
index 1dfefd0e78..334290d344 100644
--- a/packages/platform/atoms/selected-calendars/wrappers/SelectedCalendarsSettingsPlatformWrapper.tsx
+++ b/packages/platform/atoms/selected-calendars/wrappers/SelectedCalendarsSettingsPlatformWrapper.tsx
@@ -33,12 +33,14 @@ type SelectedCalendarsSettingsPlatformWrapperProps = {
classNames?: string;
calendarRedirectUrls?: CalendarRedirectUrls;
allowDelete?: boolean;
+ isDryRun?: boolean;
};
export const SelectedCalendarsSettingsPlatformWrapper = ({
classNames = "mx-5 mb-6",
calendarRedirectUrls,
allowDelete,
+ isDryRun,
}: SelectedCalendarsSettingsPlatformWrapperProps) => {
const { t } = useLocale();
const query = useConnectedCalendars({});
@@ -54,7 +56,10 @@ export const SelectedCalendarsSettingsPlatformWrapper = ({
if (!data.connectedCalendars.length) {
return (
-
+
No connected calendars found.
);
@@ -62,7 +67,10 @@ export const SelectedCalendarsSettingsPlatformWrapper = ({
return (
-
+
{data.connectedCalendars.map((connectedCalendar) => {
if (!!connectedCalendar.calendars && connectedCalendar.calendars.length > 0) {
@@ -85,6 +93,7 @@ export const SelectedCalendarsSettingsPlatformWrapper = ({
trashIcon
buttonProps={{ className: "border border-default" }}
slug={connectedCalendar.integration.slug}
+ isDryRun={isDryRun}
/>
)}
@@ -105,6 +114,7 @@ export const SelectedCalendarsSettingsPlatformWrapper = ({
credentialId={cal.credentialId}
delegationCredentialId={connectedCalendar.delegationCredentialId}
eventTypeId={null}
+ isDryRun={isDryRun}
/>
);
})}
@@ -128,6 +138,7 @@ export const SelectedCalendarsSettingsPlatformWrapper = ({
trashIcon
buttonProps={{ className: "border border-default" }}
slug={connectedCalendar.integration.slug}
+ isDryRun={isDryRun}
/>
)
@@ -147,8 +158,10 @@ export const SelectedCalendarsSettingsPlatformWrapper = ({
const SelectedCalendarsSettingsHeading = ({
calendarRedirectUrls,
+ isDryRun,
}: {
calendarRedirectUrls?: CalendarRedirectUrls;
+ isDryRun?: boolean;
}) => {
const { t } = useLocale();
@@ -161,7 +174,10 @@ const SelectedCalendarsSettingsHeading = ({
@@ -177,6 +193,7 @@ const PlatformDisconnectIntegration = (props: {
isGlobal?: boolean;
onSuccess?: () => void;
buttonProps?: ButtonProps;
+ isDryRun?: boolean;
}) => {
const { t } = useLocale();
const { onSuccess, credentialId, slug } = props;
@@ -202,11 +219,20 @@ const PlatformDisconnectIntegration = (props: {
return (
{
- slug &&
- (await deleteCalendarCredentials({
+ !props.isDryRun && setModalOpen(false);
+
+ if (props.isDryRun) {
+ toast({
+ description: t("app_removed_successfully"),
+ });
+ }
+
+ if (!props.isDryRun && slug) {
+ await deleteCalendarCredentials({
calendar: slug.split("-")[0] as unknown as (typeof CALENDARS)[number],
id: credentialId,
- }));
+ });
+ }
}}
{...props}
isModalOpen={modalOpen}
@@ -215,7 +241,7 @@ const PlatformDisconnectIntegration = (props: {
);
};
-const PlatformCalendarSwitch = (props: ICalendarSwitchProps) => {
+const PlatformCalendarSwitch = (props: ICalendarSwitchProps & { isDryRun?: boolean }) => {
const { isChecked, title, credentialId, type, externalId, delegationCredentialId } = props;
const [checkedInternal, setCheckedInternal] = useState(isChecked);
const { toast } = useToast();
@@ -271,12 +297,15 @@ const PlatformCalendarSwitch = (props: ICalendarSwitchProps) => {
id={externalId}
onCheckedChange={async () => {
setCheckedInternal((prevValue) => !prevValue);
- await toggleSelectedCalendars({
- isOn: !checkedInternal,
- credentialId,
- externalId,
- integration: type,
- });
+
+ if (!props.isDryRun) {
+ await toggleSelectedCalendars({
+ isOn: !checkedInternal,
+ credentialId,
+ externalId,
+ integration: type,
+ });
+ }
}}
/>
@@ -285,8 +314,10 @@ const PlatformCalendarSwitch = (props: ICalendarSwitchProps) => {
const PlatformAdditionalCalendarSelector = ({
calendarRedirectUrls,
+ isDryRun,
}: {
calendarRedirectUrls?: CalendarRedirectUrls;
+ isDryRun?: boolean;
}) => {
const { t } = useLocale();
const { refetch } = useConnectedCalendars({});
@@ -302,6 +333,7 @@ const PlatformAdditionalCalendarSelector = ({
>}
@@ -314,6 +346,7 @@ const PlatformAdditionalCalendarSelector = ({
>}
@@ -326,6 +359,7 @@ const PlatformAdditionalCalendarSelector = ({