diff --git a/app/client/src/ce/utils/analyticsUtilTypes.ts b/app/client/src/ce/utils/analyticsUtilTypes.ts index f4f32cc9f3..de18603225 100644 --- a/app/client/src/ce/utils/analyticsUtilTypes.ts +++ b/app/client/src/ce/utils/analyticsUtilTypes.ts @@ -360,7 +360,8 @@ export type ONBOARDING_FLOW_EVENTS = | "ONBOARDING_FLOW_CLICK_BACK_BUTTON_CREATE_NEW_APP_PAGE" | "ONBOARDING_CREATE_APP_FLOW" | "ONBOARDING_FLOW_CLICK_BACK_BUTTON_START_FROM_DATA_PAGE" - | "ONBOARDING_FLOW_CLICK_BACK_BUTTON_DATASOURCE_FORM_PAGE"; + | "ONBOARDING_FLOW_CLICK_BACK_BUTTON_DATASOURCE_FORM_PAGE" + | "ONBOARDING_FLOW_DATASOURCE_FORM_CANCEL_CLICK"; export type DATASOURCE_SCHEMA_EVENTS = | "DATASOURCE_SCHEMA_SEARCH" diff --git a/app/client/src/pages/Editor/DataSourceEditor/index.tsx b/app/client/src/pages/Editor/DataSourceEditor/index.tsx index 3f91173721..a1575817a2 100644 --- a/app/client/src/pages/Editor/DataSourceEditor/index.tsx +++ b/app/client/src/pages/Editor/DataSourceEditor/index.tsx @@ -1016,6 +1016,7 @@ class DatasourceEditorRouter extends React.Component { isFormDirty={this.props.isFormDirty} isInsideReconnectModal={isInsideReconnectModal} isInvalid={this.validateForm()} + isOnboardingFlow={isOnboardingFlow} isSaving={isSaving} isTesting={isTesting} onCancel={() => this.onCancel()} diff --git a/app/client/src/pages/Editor/SaaSEditor/DatasourceForm.tsx b/app/client/src/pages/Editor/SaaSEditor/DatasourceForm.tsx index 6d0990d96e..35ee300b3a 100644 --- a/app/client/src/pages/Editor/SaaSEditor/DatasourceForm.tsx +++ b/app/client/src/pages/Editor/SaaSEditor/DatasourceForm.tsx @@ -560,6 +560,7 @@ class DatasourceSaaSEditor extends JSONtoForm { hiddenHeader, isDeleting, isInsideReconnectModal, + isOnboardingFlow, isPluginAuthFailed, isPluginAuthorized, isSaving, @@ -685,6 +686,7 @@ class DatasourceSaaSEditor extends JSONtoForm { getSanitizedFormData={memoize(this.getSanitizedData)} isInsideReconnectModal={isInsideReconnectModal} isInvalid={validate(this.props.requiredFields, formData)} + isOnboardingFlow={isOnboardingFlow} isSaving={isSaving} isTesting={isTesting} onCancel={() => this.onCancel()} diff --git a/app/client/src/pages/common/datasourceAuth/index.tsx b/app/client/src/pages/common/datasourceAuth/index.tsx index 8e806a6e76..b4758d4a75 100644 --- a/app/client/src/pages/common/datasourceAuth/index.tsx +++ b/app/client/src/pages/common/datasourceAuth/index.tsx @@ -38,6 +38,7 @@ import { getCurrentEnvironmentDetails } from "@appsmith/selectors/environmentSel import { useFeatureFlag } from "utils/hooks/useFeatureFlag"; import { FEATURE_FLAG } from "@appsmith/entities/FeatureFlag"; import { getHasManageDatasourcePermission } from "@appsmith/utils/BusinessFeatures/permissionPageHelpers"; +import { resetCurrentPluginIdForCreateNewApp } from "actions/onboardingActions"; interface Props { datasource: Datasource; @@ -65,6 +66,7 @@ interface Props { isFormDirty?: boolean; scopeValue?: string; onCancel: () => void; + isOnboardingFlow?: boolean; } export type DatasourceFormButtonTypes = Record; @@ -137,6 +139,7 @@ function DatasourceAuth({ isFormDirty, isInsideReconnectModal, isInvalid, + isOnboardingFlow, isSaving, isTesting, onCancel, @@ -343,12 +346,20 @@ function DatasourceAuth({ kind="tertiary" onClick={() => { if (createMode) { - const URL = integrationEditorURL({ - pageId, - selectedTab: INTEGRATION_TABS.NEW, - params: getQueryParams(), - }); - history.push(URL); + if (!!isOnboardingFlow) { + // Going back from start from data screen + AnalyticsUtil.logEvent( + "ONBOARDING_FLOW_DATASOURCE_FORM_CANCEL_CLICK", + ); + dispatch(resetCurrentPluginIdForCreateNewApp()); + } else { + const URL = integrationEditorURL({ + pageId, + selectedTab: INTEGRATION_TABS.NEW, + params: getQueryParams(), + }); + history.push(URL); + } } else { !!onCancel && onCancel(); }