diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.tsx index 7f7e13ee598..43b2d5c8091 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.tsx @@ -12,10 +12,11 @@ */ import { Button, Form, Space } from 'antd'; +import { FieldProp, FieldTypes } from 'interface/FormUtils.interface'; import { capitalize, isNil } from 'lodash'; import React, { useMemo, useRef } from 'react'; import { useTranslation } from 'react-i18next'; -import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils'; +import { generateFormFields } from 'utils/formUtils'; import { PROFILE_SAMPLE_OPTIONS } from '../../../constants/profiler.constant'; import { FilterPatternEnum } from '../../../enums/filterPattern.enum'; import { FormSubmitType } from '../../../enums/form.enum'; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddService/Steps/ConfigureService.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddService/Steps/ConfigureService.tsx index 3f0b09a53ff..a0415695812 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/AddService/Steps/ConfigureService.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/AddService/Steps/ConfigureService.tsx @@ -14,8 +14,9 @@ import { Button, Form, FormProps, Space } from 'antd'; import { ENTITY_NAME_REGEX } from 'constants/regex.constants'; import { t } from 'i18next'; +import { FieldProp, FieldTypes } from 'interface/FormUtils.interface'; import React from 'react'; -import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils'; +import { generateFormFields } from 'utils/formUtils'; import { ConfigureServiceProps } from './Steps.interface'; const ConfigureService = ({ diff --git a/openmetadata-ui/src/main/resources/ui/src/components/CustomEntityDetail/AddCustomProperty/AddCustomProperty.tsx b/openmetadata-ui/src/main/resources/ui/src/components/CustomEntityDetail/AddCustomProperty/AddCustomProperty.tsx index 04fa3351ba7..57ada5e0cdc 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/CustomEntityDetail/AddCustomProperty/AddCustomProperty.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/CustomEntityDetail/AddCustomProperty/AddCustomProperty.tsx @@ -14,6 +14,7 @@ import { Button, Card, Col, Form, Row } from 'antd'; import { AxiosError } from 'axios'; import { t } from 'i18next'; +import { FieldProp, FieldTypes } from 'interface/FormUtils.interface'; import { isUndefined, map, startCase } from 'lodash'; import React, { FocusEvent, @@ -28,7 +29,7 @@ import { getTypeByFQN, getTypeListByCategory, } from 'rest/metadataTypeAPI'; -import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils'; +import { generateFormFields } from 'utils/formUtils'; import { SUPPORTED_FIELD_TYPES } from '../../../constants/constants'; import { Category, CustomProperty, Type } from '../../../generated/entity/type'; import { showErrorToast } from '../../../utils/ToastUtils'; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTCloudConfig.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTCloudConfig.tsx index 7e5a62c7f91..87542176aca 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTCloudConfig.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTCloudConfig.tsx @@ -12,8 +12,9 @@ */ import { t } from 'i18next'; +import { FieldProp, FieldTypes } from 'interface/FormUtils.interface'; import React, { Fragment, FunctionComponent } from 'react'; -import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils'; +import { generateFormFields } from 'utils/formUtils'; import DBTCommonFields from './DBTCommonFields.component'; import { DbtConfigCloud } from './DBTConfigForm.interface'; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTCommonFields.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTCommonFields.component.tsx index a8bddd0f88b..50cbd10db09 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTCommonFields.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTCommonFields.component.tsx @@ -11,9 +11,10 @@ * limitations under the License. */ +import { FieldProp, FieldTypes } from 'interface/FormUtils.interface'; import React, { Fragment } from 'react'; import { useTranslation } from 'react-i18next'; -import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils'; +import { generateFormFields } from 'utils/formUtils'; interface Props { dbtClassificationName: string | undefined; 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 85e196b54d5..021dfc600b0 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 @@ -12,9 +12,10 @@ */ import { Button, Form, FormProps, Space } from 'antd'; +import { FieldProp, FieldTypes } from 'interface/FormUtils.interface'; import React, { FunctionComponent, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; -import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils'; +import { generateFormFields } from 'utils/formUtils'; import { FormSubmitType } from '../../../enums/form.enum'; import { DBTCloudConfig } from './DBTCloudConfig'; import { DBTConfigFormProps } from './DBTConfigForm.interface'; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTFormConstants.ts b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTFormConstants.ts index 9ddc79a00ac..c64b3e02d76 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTFormConstants.ts +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTFormConstants.ts @@ -13,7 +13,7 @@ import i18n from 'utils/i18next/LocalUtil'; import { FormValidationRulesType } from '../../../enums/form.enum'; -import { FormValidationRules } from '../../../interface/genericForm.interface'; +import { FormValidationRules } from '../../../interface/FormUtils.interface'; import { DropDownListItem } from '../../dropdown/types'; import { DbtConfigCloudReq, diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTGCSConfig.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTGCSConfig.tsx index a42c2f6dc4e..d7500f5e918 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTGCSConfig.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTGCSConfig.tsx @@ -12,13 +12,9 @@ */ import { t } from 'i18next'; +import { FieldProp, FieldTypes } from 'interface/FormUtils.interface'; import React, { Fragment, FunctionComponent } from 'react'; -import { - FieldProp, - FieldTypes, - generateFormFields, - getField, -} from 'utils/formUtils'; +import { generateFormFields, getField } from 'utils/formUtils'; import { GCSCredentialsValues } from '../../../generated/metadataIngestion/dbtPipeline'; import DBTCommonFields from './DBTCommonFields.component'; import { DbtConfigS3GCS } from './DBTConfigForm.interface'; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTHttpConfig.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTHttpConfig.tsx index da405cac674..3055c32df81 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTHttpConfig.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTHttpConfig.tsx @@ -11,9 +11,10 @@ * limitations under the License. */ +import { FieldProp, FieldTypes } from 'interface/FormUtils.interface'; import React, { Fragment, FunctionComponent } from 'react'; import { useTranslation } from 'react-i18next'; -import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils'; +import { generateFormFields } from 'utils/formUtils'; import DBTCommonFields from './DBTCommonFields.component'; import { DbtConfigHttp } from './DBTConfigForm.interface'; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTLocalConfig.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTLocalConfig.tsx index d70f3e3a5bb..746bf9c638a 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTLocalConfig.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTLocalConfig.tsx @@ -12,8 +12,9 @@ */ import { t } from 'i18next'; +import { FieldProp, FieldTypes } from 'interface/FormUtils.interface'; import React, { Fragment, FunctionComponent } from 'react'; -import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils'; +import { generateFormFields } from 'utils/formUtils'; import DBTCommonFields from './DBTCommonFields.component'; import { DbtConfigLocal } from './DBTConfigForm.interface'; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTS3Config.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTS3Config.tsx index 57b28cd5c27..72ee02690d7 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTS3Config.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/DBTConfigFormBuilder/DBTS3Config.tsx @@ -12,8 +12,9 @@ */ import { t } from 'i18next'; +import { FieldProp, FieldTypes } from 'interface/FormUtils.interface'; import React, { Fragment, FunctionComponent } from 'react'; -import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils'; +import { generateFormFields } from 'utils/formUtils'; import DBTCommonFields from './DBTCommonFields.component'; import { DbtConfigS3GCS } from './DBTConfigForm.interface'; diff --git a/openmetadata-ui/src/main/resources/ui/src/interface/genericForm.interface.ts b/openmetadata-ui/src/main/resources/ui/src/interface/FormUtils.interface.ts similarity index 51% rename from openmetadata-ui/src/main/resources/ui/src/interface/genericForm.interface.ts rename to openmetadata-ui/src/main/resources/ui/src/interface/FormUtils.interface.ts index 83b99dd6b1c..fb0e4835486 100644 --- a/openmetadata-ui/src/main/resources/ui/src/interface/genericForm.interface.ts +++ b/openmetadata-ui/src/main/resources/ui/src/interface/FormUtils.interface.ts @@ -11,9 +11,39 @@ * limitations under the License. */ +import { FormItemProps, FormRule } from 'antd'; +import { ReactNode } from 'react'; import { FormValidationRulesType } from '../enums/form.enum'; export type FormValidationRules = Record< FormValidationRulesType, Array >; + +export type FormItemLayout = 'horizontal' | 'vertical'; + +export enum FieldTypes { + TEXT = 'text', + PASSWORD = 'password', + FILTER_PATTERN = 'filter_pattern', + SWITCH = 'switch', + SELECT = 'select', + NUMBER = 'number', + SLIDER_INPUT = 'slider_input', + DESCRIPTION = 'description', +} + +export interface FieldProp { + label: ReactNode; + name: string; + type: FieldTypes; + required: boolean; + id: string; + props?: Record; + formItemProps?: FormItemProps; + rules?: FormRule[]; + helperText?: string; + placeholder?: string; + hasSeparator?: boolean; + formItemLayout?: FormItemLayout; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/EditCustomLogoConfig/EditCustomLogoConfig.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/EditCustomLogoConfig/EditCustomLogoConfig.tsx index b96ed702dcc..c661d39c342 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/EditCustomLogoConfig/EditCustomLogoConfig.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/EditCustomLogoConfig/EditCustomLogoConfig.tsx @@ -28,6 +28,7 @@ import { import { ServiceCategory } from 'enums/service.enum'; import { LogoConfiguration } from 'generated/configuration/applicationConfiguration'; import { Settings, SettingType } from 'generated/settings/settings'; +import { FieldProp, FieldTypes } from 'interface/FormUtils.interface'; import React, { useEffect, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useHistory } from 'react-router-dom'; @@ -35,7 +36,7 @@ import { getSettingsConfigFromConfigType, updateSettingsConfig, } from 'rest/settingConfigAPI'; -import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils'; +import { generateFormFields } from 'utils/formUtils'; import { getSettingPath } from 'utils/RouterUtils'; import { showErrorToast, showSuccessToast } from 'utils/ToastUtils'; diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/TagsPage/TagsForm.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/TagsPage/TagsForm.tsx index 88edd67540b..c177fc2ba56 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/TagsPage/TagsForm.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/TagsPage/TagsForm.tsx @@ -15,9 +15,10 @@ import { Form, Modal, Typography } from 'antd'; import { VALIDATION_MESSAGES } from 'constants/constants'; import { ENTITY_NAME_REGEX } from 'constants/regex.constants'; import { DEFAULT_FORM_VALUE } from 'constants/Tags.constant'; +import { FieldProp, FieldTypes } from 'interface/FormUtils.interface'; import React, { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; -import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils'; +import { generateFormFields } from 'utils/formUtils'; import { RenameFormProps } from './TagsPage.interface'; const TagsForm = ({ diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/DBTConfigFormUtil.ts b/openmetadata-ui/src/main/resources/ui/src/utils/DBTConfigFormUtil.ts index ba7a02182fc..42c54ed9a63 100644 --- a/openmetadata-ui/src/main/resources/ui/src/utils/DBTConfigFormUtil.ts +++ b/openmetadata-ui/src/main/resources/ui/src/utils/DBTConfigFormUtil.ts @@ -45,7 +45,7 @@ import { GCSCredentialsValues, SCredentials, } from '../generated/metadataIngestion/dbtPipeline'; -import { FormValidationRules } from '../interface/genericForm.interface'; +import { FormValidationRules } from '../interface/FormUtils.interface'; import { isValidEmail, isValidUrl } from './CommonUtils'; export const validateDbtCloudConfig = ( diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/formUtils.tsx b/openmetadata-ui/src/main/resources/ui/src/utils/formUtils.tsx index f7051a631cd..db2dee515ba 100644 --- a/openmetadata-ui/src/main/resources/ui/src/utils/formUtils.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/utils/formUtils.tsx @@ -15,7 +15,6 @@ import { Divider, Form, FormItemProps, - FormRule, Input, InputNumber, Select, @@ -28,38 +27,11 @@ import RichTextEditor from 'components/common/rich-text-editor/RichTextEditor'; import { RichTextEditorProp } from 'components/common/rich-text-editor/RichTextEditor.interface'; import SliderWithInput from 'components/SliderWithInput/SliderWithInput'; import { SliderWithInputProps } from 'components/SliderWithInput/SliderWithInput.interface'; +import { FieldProp, FieldTypes } from 'interface/FormUtils.interface'; import { compact, startCase } from 'lodash'; import React, { Fragment, ReactNode } from 'react'; import i18n from './i18next/LocalUtil'; -export type FormItemLayout = 'horizontal' | 'vertical'; - -export enum FieldTypes { - TEXT = 'text', - PASSWORD = 'password', - FILTER_PATTERN = 'filter_pattern', - SWITCH = 'switch', - SELECT = 'select', - NUMBER = 'number', - SLIDER_INPUT = 'slider_input', - DESCRIPTION = 'description', -} - -export interface FieldProp { - label: ReactNode; - name: string; - type: FieldTypes; - required: boolean; - id: string; - props?: Record; - formItemProps?: FormItemProps; - rules?: FormRule[]; - helperText?: string; - placeholder?: string; - hasSeparator?: boolean; - formItemLayout?: FormItemLayout; -} - export const getField = (field: FieldProp) => { const { label,