From 2a6208f9b44bb4d6bd10ded61598fe97cd337e5d Mon Sep 17 00:00:00 2001 From: darth-coder00 <86726556+darth-coder00@users.noreply.github.com> Date: Tue, 3 May 2022 15:31:27 +0530 Subject: [PATCH] Fix #4617: Form stuck when changing DBT source from `None` to something else (#4618) --- .../AddIngestion/AddIngestion.component.tsx | 2 +- .../DBTConfigForm.interface.ts | 2 +- .../DBTConfigFormBuilder.tsx | 16 ++++++---------- .../resources/ui/src/utils/DBTConfigFormUtil.ts | 11 ++--------- 4 files changed, 10 insertions(+), 21 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/AddIngestion.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/AddIngestion.component.tsx index d25430bae4d..28ff798fd43 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/AddIngestion.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/AddIngestion.component.tsx @@ -529,7 +529,7 @@ const AddIngestion = ({ {activeIngestionStep === 2 && ( setGcsConfigType(type)} handleSourceChange={(src) => setDbtConfigSourceType(src)} diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTConfigForm.interface.ts b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTConfigForm.interface.ts index 92ccb08ef51..4c2bf62e862 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTConfigForm.interface.ts +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTConfigForm.interface.ts @@ -26,7 +26,7 @@ export interface DBTFormCommonProps { } export interface DBTConfigFormProps extends DBTFormCommonProps { - data?: DbtConfigSource; + data: DbtConfigSource; gcsType?: GCS_CONFIG; source?: DBT_SOURCES; handleGcsTypeChange?: (type: GCS_CONFIG) => void; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTConfigFormBuilder.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTConfigFormBuilder.tsx index 75fe7e41761..67c41c9822d 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTConfigFormBuilder.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTConfigFormBuilder.tsx @@ -28,7 +28,7 @@ import { DBTLocalConfig } from './DBTLocalConfig'; import { DBTS3Config } from './DBTS3Config'; const DBTConfigFormBuilder: FunctionComponent = ({ - data = {}, + data, okText, cancelText, gcsType, @@ -39,7 +39,6 @@ const DBTConfigFormBuilder: FunctionComponent = ({ onSubmit, }: DBTConfigFormProps) => { const [dbtConfig, setDbtConfig] = useState(data); - const [dbtSource, setDbtSource] = useState(source); const updateDbtConfig = ( key: keyof DbtConfigSource, @@ -124,7 +123,7 @@ const DBTConfigFormBuilder: FunctionComponent = ({ }; const getFields = () => { - switch (dbtSource) { + switch (source) { case DBT_SOURCES.local: { return getLocalConfigFields(); } @@ -168,13 +167,9 @@ const DBTConfigFormBuilder: FunctionComponent = ({ } }; - useEffect(() => { - handleSourceChange && handleSourceChange(dbtSource); - }, [dbtSource]); - useEffect(() => { setDbtConfig(data); - }, [data, dbtSource, gcsType]); + }, [data, source, gcsType]); return ( @@ -191,9 +186,10 @@ const DBTConfigFormBuilder: FunctionComponent = ({ id="dbt-source" name="dbt-source" placeholder="Select DBT Source" - value={dbtSource} + value={source} onChange={(e) => { - setDbtSource(e.target.value as DBT_SOURCES); + handleSourceChange && + handleSourceChange(e.target.value as DBT_SOURCES); }}> {DBTSources.map((option, i) => (