From b265ac2fd5bc703069ff4fb9f9bd734a575ef333 Mon Sep 17 00:00:00 2001 From: haojin111 <63215848+haojin111@users.noreply.github.com> Date: Wed, 30 Mar 2022 00:54:30 +0800 Subject: [PATCH 1/2] fixed redirection on google authorisation in reconnect modal (#12350) Co-authored-by: arunvjn --- app/client/src/RouteBuilder.ts | 12 ++++++------ .../Editor/gitSync/ReconnectDatasourceModal.tsx | 5 +++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/app/client/src/RouteBuilder.ts b/app/client/src/RouteBuilder.ts index 8508a4b5c4..bcb5257b5e 100644 --- a/app/client/src/RouteBuilder.ts +++ b/app/client/src/RouteBuilder.ts @@ -97,13 +97,13 @@ function baseURLBuilder( ): string { const { hash = "", params = {}, suffix } = { ...rest }; applicationVersion = - applicationVersion ?? BASE_URL_BUILDER_PARAMS.applicationVersion; + applicationVersion || BASE_URL_BUILDER_PARAMS.applicationVersion; const shouldUseLegacyURLs = typeof applicationVersion !== "undefined" && applicationVersion < ApplicationVersion.SLUG_URL; let basePath = ""; - pageId = pageId ?? BASE_URL_BUILDER_PARAMS.pageId; + pageId = pageId || BASE_URL_BUILDER_PARAMS.pageId; // fallback incase pageId is not set if (!pageId) { @@ -122,15 +122,15 @@ function baseURLBuilder( // fallback incase pageId is not set if (shouldUseLegacyURLs) { - applicationId = applicationId ?? BASE_URL_BUILDER_PARAMS.applicationId; + applicationId = applicationId || BASE_URL_BUILDER_PARAMS.applicationId; basePath = `/applications/${applicationId}/pages/${pageId}`; } else { applicationSlug = - applicationSlug ?? - BASE_URL_BUILDER_PARAMS.applicationSlug ?? + applicationSlug || + BASE_URL_BUILDER_PARAMS.applicationSlug || PLACEHOLDER_APP_SLUG; pageSlug = - pageSlug ?? BASE_URL_BUILDER_PARAMS.pageSlug ?? PLACEHOLDER_PAGE_SLUG; + pageSlug || BASE_URL_BUILDER_PARAMS.pageSlug || PLACEHOLDER_PAGE_SLUG; basePath = `/${applicationSlug}/${pageSlug}-${pageId}`; } basePath += mode === APP_MODE.EDIT ? "/edit" : ""; diff --git a/app/client/src/pages/Editor/gitSync/ReconnectDatasourceModal.tsx b/app/client/src/pages/Editor/gitSync/ReconnectDatasourceModal.tsx index 8efe81e80e..e9f44db8c6 100644 --- a/app/client/src/pages/Editor/gitSync/ReconnectDatasourceModal.tsx +++ b/app/client/src/pages/Editor/gitSync/ReconnectDatasourceModal.tsx @@ -60,6 +60,7 @@ import { ReduxActionTypes } from "constants/ReduxActionConstants"; import { Toaster, Variant } from "components/ads"; import { getOAuthAccessToken } from "actions/datasourceActions"; import { builderURL } from "RouteBuilder"; +import { PLACEHOLDER_APP_SLUG } from "constants/routes"; const Container = styled.div` height: 765px; @@ -438,9 +439,9 @@ function ReconnectDatasourceModal() { setAppURL( builderURL({ applicationVersion: - importedApplication?.applicationVersion ?? + importedApplication?.applicationVersion || ApplicationVersion.SLUG_URL, - applicationSlug: importedApplication.slug, + applicationSlug: importedApplication?.slug || PLACEHOLDER_APP_SLUG, applicationId: appId, pageId: pageId, }), From 8ded3711620639c9d2e35823b72bc1da33fcbe4b Mon Sep 17 00:00:00 2001 From: haojin111 Date: Wed, 30 Mar 2022 14:37:34 +0800 Subject: [PATCH 2/2] fixed issue of redirecting with one oauth authentication --- .../Editor/gitSync/ReconnectDatasourceModal.tsx | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/client/src/pages/Editor/gitSync/ReconnectDatasourceModal.tsx b/app/client/src/pages/Editor/gitSync/ReconnectDatasourceModal.tsx index e9f44db8c6..a36005d9d4 100644 --- a/app/client/src/pages/Editor/gitSync/ReconnectDatasourceModal.tsx +++ b/app/client/src/pages/Editor/gitSync/ReconnectDatasourceModal.tsx @@ -47,7 +47,7 @@ import { setIsReconnectingDatasourcesModalOpen, setOrgIdForImport, } from "actions/applicationActions"; -import { Datasource } from "entities/Datasource"; +import { AuthType, Datasource } from "entities/Datasource"; import { DATASOURCE_DB_FORM } from "constants/forms"; import { initialize } from "redux-form"; import TooltipComponent from "components/ads/Tooltip"; @@ -452,6 +452,18 @@ function ReconnectDatasourceModal() { // checking of full configured useEffect(() => { if (isModalOpen && !isTesting) { + // if there is only one gsheet datasource, it shouldn't be redirected to app immediately + if ( + !queryIsImport && + datasources.length === 1 && + datasources[0].isConfigured + ) { + const authType = + datasources[0].datasourceConfiguration?.authentication + ?.authenticationType; + + if (authType === AuthType.OAUTH2) return; + } const id = selectedDatasourceId; const pending = datasources.filter((ds: Datasource) => !ds.isConfigured); if (pending.length > 0) { @@ -469,7 +481,7 @@ function ReconnectDatasourceModal() { window.open(appURL, "_self"); } } - }, [datasources, appURL, isModalOpen, isTesting]); + }, [datasources, appURL, isModalOpen, isTesting, queryIsImport]); const mappedDataSources = datasources.map((ds: Datasource) => { return (