mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-09-02 05:33:49 +00:00
chore(ui): move form util types to separate interface file (#11782)
* chore(ui): move form util types to separate interface file * address comments
This commit is contained in:
parent
b1c0cd92d6
commit
df26e3df53
@ -12,10 +12,11 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { Button, Form, Space } from 'antd';
|
import { Button, Form, Space } from 'antd';
|
||||||
|
import { FieldProp, FieldTypes } from 'interface/FormUtils.interface';
|
||||||
import { capitalize, isNil } from 'lodash';
|
import { capitalize, isNil } from 'lodash';
|
||||||
import React, { useMemo, useRef } from 'react';
|
import React, { useMemo, useRef } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
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 { PROFILE_SAMPLE_OPTIONS } from '../../../constants/profiler.constant';
|
||||||
import { FilterPatternEnum } from '../../../enums/filterPattern.enum';
|
import { FilterPatternEnum } from '../../../enums/filterPattern.enum';
|
||||||
import { FormSubmitType } from '../../../enums/form.enum';
|
import { FormSubmitType } from '../../../enums/form.enum';
|
||||||
|
@ -14,8 +14,9 @@
|
|||||||
import { Button, Form, FormProps, Space } from 'antd';
|
import { Button, Form, FormProps, Space } from 'antd';
|
||||||
import { ENTITY_NAME_REGEX } from 'constants/regex.constants';
|
import { ENTITY_NAME_REGEX } from 'constants/regex.constants';
|
||||||
import { t } from 'i18next';
|
import { t } from 'i18next';
|
||||||
|
import { FieldProp, FieldTypes } from 'interface/FormUtils.interface';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils';
|
import { generateFormFields } from 'utils/formUtils';
|
||||||
import { ConfigureServiceProps } from './Steps.interface';
|
import { ConfigureServiceProps } from './Steps.interface';
|
||||||
|
|
||||||
const ConfigureService = ({
|
const ConfigureService = ({
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
import { Button, Card, Col, Form, Row } from 'antd';
|
import { Button, Card, Col, Form, Row } from 'antd';
|
||||||
import { AxiosError } from 'axios';
|
import { AxiosError } from 'axios';
|
||||||
import { t } from 'i18next';
|
import { t } from 'i18next';
|
||||||
|
import { FieldProp, FieldTypes } from 'interface/FormUtils.interface';
|
||||||
import { isUndefined, map, startCase } from 'lodash';
|
import { isUndefined, map, startCase } from 'lodash';
|
||||||
import React, {
|
import React, {
|
||||||
FocusEvent,
|
FocusEvent,
|
||||||
@ -28,7 +29,7 @@ import {
|
|||||||
getTypeByFQN,
|
getTypeByFQN,
|
||||||
getTypeListByCategory,
|
getTypeListByCategory,
|
||||||
} from 'rest/metadataTypeAPI';
|
} from 'rest/metadataTypeAPI';
|
||||||
import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils';
|
import { generateFormFields } from 'utils/formUtils';
|
||||||
import { SUPPORTED_FIELD_TYPES } from '../../../constants/constants';
|
import { SUPPORTED_FIELD_TYPES } from '../../../constants/constants';
|
||||||
import { Category, CustomProperty, Type } from '../../../generated/entity/type';
|
import { Category, CustomProperty, Type } from '../../../generated/entity/type';
|
||||||
import { showErrorToast } from '../../../utils/ToastUtils';
|
import { showErrorToast } from '../../../utils/ToastUtils';
|
||||||
|
@ -12,8 +12,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { t } from 'i18next';
|
import { t } from 'i18next';
|
||||||
|
import { FieldProp, FieldTypes } from 'interface/FormUtils.interface';
|
||||||
import React, { Fragment, FunctionComponent } from 'react';
|
import React, { Fragment, FunctionComponent } from 'react';
|
||||||
import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils';
|
import { generateFormFields } from 'utils/formUtils';
|
||||||
import DBTCommonFields from './DBTCommonFields.component';
|
import DBTCommonFields from './DBTCommonFields.component';
|
||||||
import { DbtConfigCloud } from './DBTConfigForm.interface';
|
import { DbtConfigCloud } from './DBTConfigForm.interface';
|
||||||
|
|
||||||
|
@ -11,9 +11,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import { FieldProp, FieldTypes } from 'interface/FormUtils.interface';
|
||||||
import React, { Fragment } from 'react';
|
import React, { Fragment } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils';
|
import { generateFormFields } from 'utils/formUtils';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
dbtClassificationName: string | undefined;
|
dbtClassificationName: string | undefined;
|
||||||
|
@ -12,9 +12,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { Button, Form, FormProps, Space } from 'antd';
|
import { Button, Form, FormProps, Space } from 'antd';
|
||||||
|
import { FieldProp, FieldTypes } from 'interface/FormUtils.interface';
|
||||||
import React, { FunctionComponent, useMemo } from 'react';
|
import React, { FunctionComponent, useMemo } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils';
|
import { generateFormFields } from 'utils/formUtils';
|
||||||
import { FormSubmitType } from '../../../enums/form.enum';
|
import { FormSubmitType } from '../../../enums/form.enum';
|
||||||
import { DBTCloudConfig } from './DBTCloudConfig';
|
import { DBTCloudConfig } from './DBTCloudConfig';
|
||||||
import { DBTConfigFormProps } from './DBTConfigForm.interface';
|
import { DBTConfigFormProps } from './DBTConfigForm.interface';
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
import i18n from 'utils/i18next/LocalUtil';
|
import i18n from 'utils/i18next/LocalUtil';
|
||||||
import { FormValidationRulesType } from '../../../enums/form.enum';
|
import { FormValidationRulesType } from '../../../enums/form.enum';
|
||||||
import { FormValidationRules } from '../../../interface/genericForm.interface';
|
import { FormValidationRules } from '../../../interface/FormUtils.interface';
|
||||||
import { DropDownListItem } from '../../dropdown/types';
|
import { DropDownListItem } from '../../dropdown/types';
|
||||||
import {
|
import {
|
||||||
DbtConfigCloudReq,
|
DbtConfigCloudReq,
|
||||||
|
@ -12,13 +12,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { t } from 'i18next';
|
import { t } from 'i18next';
|
||||||
|
import { FieldProp, FieldTypes } from 'interface/FormUtils.interface';
|
||||||
import React, { Fragment, FunctionComponent } from 'react';
|
import React, { Fragment, FunctionComponent } from 'react';
|
||||||
import {
|
import { generateFormFields, getField } from 'utils/formUtils';
|
||||||
FieldProp,
|
|
||||||
FieldTypes,
|
|
||||||
generateFormFields,
|
|
||||||
getField,
|
|
||||||
} from 'utils/formUtils';
|
|
||||||
import { GCSCredentialsValues } from '../../../generated/metadataIngestion/dbtPipeline';
|
import { GCSCredentialsValues } from '../../../generated/metadataIngestion/dbtPipeline';
|
||||||
import DBTCommonFields from './DBTCommonFields.component';
|
import DBTCommonFields from './DBTCommonFields.component';
|
||||||
import { DbtConfigS3GCS } from './DBTConfigForm.interface';
|
import { DbtConfigS3GCS } from './DBTConfigForm.interface';
|
||||||
|
@ -11,9 +11,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import { FieldProp, FieldTypes } from 'interface/FormUtils.interface';
|
||||||
import React, { Fragment, FunctionComponent } from 'react';
|
import React, { Fragment, FunctionComponent } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils';
|
import { generateFormFields } from 'utils/formUtils';
|
||||||
import DBTCommonFields from './DBTCommonFields.component';
|
import DBTCommonFields from './DBTCommonFields.component';
|
||||||
import { DbtConfigHttp } from './DBTConfigForm.interface';
|
import { DbtConfigHttp } from './DBTConfigForm.interface';
|
||||||
|
|
||||||
|
@ -12,8 +12,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { t } from 'i18next';
|
import { t } from 'i18next';
|
||||||
|
import { FieldProp, FieldTypes } from 'interface/FormUtils.interface';
|
||||||
import React, { Fragment, FunctionComponent } from 'react';
|
import React, { Fragment, FunctionComponent } from 'react';
|
||||||
import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils';
|
import { generateFormFields } from 'utils/formUtils';
|
||||||
import DBTCommonFields from './DBTCommonFields.component';
|
import DBTCommonFields from './DBTCommonFields.component';
|
||||||
import { DbtConfigLocal } from './DBTConfigForm.interface';
|
import { DbtConfigLocal } from './DBTConfigForm.interface';
|
||||||
|
|
||||||
|
@ -12,8 +12,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { t } from 'i18next';
|
import { t } from 'i18next';
|
||||||
|
import { FieldProp, FieldTypes } from 'interface/FormUtils.interface';
|
||||||
import React, { Fragment, FunctionComponent } from 'react';
|
import React, { Fragment, FunctionComponent } from 'react';
|
||||||
import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils';
|
import { generateFormFields } from 'utils/formUtils';
|
||||||
import DBTCommonFields from './DBTCommonFields.component';
|
import DBTCommonFields from './DBTCommonFields.component';
|
||||||
import { DbtConfigS3GCS } from './DBTConfigForm.interface';
|
import { DbtConfigS3GCS } from './DBTConfigForm.interface';
|
||||||
|
|
||||||
|
@ -11,9 +11,39 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import { FormItemProps, FormRule } from 'antd';
|
||||||
|
import { ReactNode } from 'react';
|
||||||
import { FormValidationRulesType } from '../enums/form.enum';
|
import { FormValidationRulesType } from '../enums/form.enum';
|
||||||
|
|
||||||
export type FormValidationRules = Record<
|
export type FormValidationRules = Record<
|
||||||
FormValidationRulesType,
|
FormValidationRulesType,
|
||||||
Array<string>
|
Array<string>
|
||||||
>;
|
>;
|
||||||
|
|
||||||
|
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<string, unknown>;
|
||||||
|
formItemProps?: FormItemProps;
|
||||||
|
rules?: FormRule[];
|
||||||
|
helperText?: string;
|
||||||
|
placeholder?: string;
|
||||||
|
hasSeparator?: boolean;
|
||||||
|
formItemLayout?: FormItemLayout;
|
||||||
|
}
|
@ -28,6 +28,7 @@ import {
|
|||||||
import { ServiceCategory } from 'enums/service.enum';
|
import { ServiceCategory } from 'enums/service.enum';
|
||||||
import { LogoConfiguration } from 'generated/configuration/applicationConfiguration';
|
import { LogoConfiguration } from 'generated/configuration/applicationConfiguration';
|
||||||
import { Settings, SettingType } from 'generated/settings/settings';
|
import { Settings, SettingType } from 'generated/settings/settings';
|
||||||
|
import { FieldProp, FieldTypes } from 'interface/FormUtils.interface';
|
||||||
import React, { useEffect, useMemo, useState } from 'react';
|
import React, { useEffect, useMemo, useState } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { useHistory } from 'react-router-dom';
|
import { useHistory } from 'react-router-dom';
|
||||||
@ -35,7 +36,7 @@ import {
|
|||||||
getSettingsConfigFromConfigType,
|
getSettingsConfigFromConfigType,
|
||||||
updateSettingsConfig,
|
updateSettingsConfig,
|
||||||
} from 'rest/settingConfigAPI';
|
} from 'rest/settingConfigAPI';
|
||||||
import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils';
|
import { generateFormFields } from 'utils/formUtils';
|
||||||
import { getSettingPath } from 'utils/RouterUtils';
|
import { getSettingPath } from 'utils/RouterUtils';
|
||||||
import { showErrorToast, showSuccessToast } from 'utils/ToastUtils';
|
import { showErrorToast, showSuccessToast } from 'utils/ToastUtils';
|
||||||
|
|
||||||
|
@ -15,9 +15,10 @@ import { Form, Modal, Typography } from 'antd';
|
|||||||
import { VALIDATION_MESSAGES } from 'constants/constants';
|
import { VALIDATION_MESSAGES } from 'constants/constants';
|
||||||
import { ENTITY_NAME_REGEX } from 'constants/regex.constants';
|
import { ENTITY_NAME_REGEX } from 'constants/regex.constants';
|
||||||
import { DEFAULT_FORM_VALUE } from 'constants/Tags.constant';
|
import { DEFAULT_FORM_VALUE } from 'constants/Tags.constant';
|
||||||
|
import { FieldProp, FieldTypes } from 'interface/FormUtils.interface';
|
||||||
import React, { useEffect } from 'react';
|
import React, { useEffect } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { FieldProp, FieldTypes, generateFormFields } from 'utils/formUtils';
|
import { generateFormFields } from 'utils/formUtils';
|
||||||
import { RenameFormProps } from './TagsPage.interface';
|
import { RenameFormProps } from './TagsPage.interface';
|
||||||
|
|
||||||
const TagsForm = ({
|
const TagsForm = ({
|
||||||
|
@ -45,7 +45,7 @@ import {
|
|||||||
GCSCredentialsValues,
|
GCSCredentialsValues,
|
||||||
SCredentials,
|
SCredentials,
|
||||||
} from '../generated/metadataIngestion/dbtPipeline';
|
} from '../generated/metadataIngestion/dbtPipeline';
|
||||||
import { FormValidationRules } from '../interface/genericForm.interface';
|
import { FormValidationRules } from '../interface/FormUtils.interface';
|
||||||
import { isValidEmail, isValidUrl } from './CommonUtils';
|
import { isValidEmail, isValidUrl } from './CommonUtils';
|
||||||
|
|
||||||
export const validateDbtCloudConfig = (
|
export const validateDbtCloudConfig = (
|
||||||
|
@ -15,7 +15,6 @@ import {
|
|||||||
Divider,
|
Divider,
|
||||||
Form,
|
Form,
|
||||||
FormItemProps,
|
FormItemProps,
|
||||||
FormRule,
|
|
||||||
Input,
|
Input,
|
||||||
InputNumber,
|
InputNumber,
|
||||||
Select,
|
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 { RichTextEditorProp } from 'components/common/rich-text-editor/RichTextEditor.interface';
|
||||||
import SliderWithInput from 'components/SliderWithInput/SliderWithInput';
|
import SliderWithInput from 'components/SliderWithInput/SliderWithInput';
|
||||||
import { SliderWithInputProps } from 'components/SliderWithInput/SliderWithInput.interface';
|
import { SliderWithInputProps } from 'components/SliderWithInput/SliderWithInput.interface';
|
||||||
|
import { FieldProp, FieldTypes } from 'interface/FormUtils.interface';
|
||||||
import { compact, startCase } from 'lodash';
|
import { compact, startCase } from 'lodash';
|
||||||
import React, { Fragment, ReactNode } from 'react';
|
import React, { Fragment, ReactNode } from 'react';
|
||||||
import i18n from './i18next/LocalUtil';
|
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<string, unknown>;
|
|
||||||
formItemProps?: FormItemProps;
|
|
||||||
rules?: FormRule[];
|
|
||||||
helperText?: string;
|
|
||||||
placeholder?: string;
|
|
||||||
hasSeparator?: boolean;
|
|
||||||
formItemLayout?: FormItemLayout;
|
|
||||||
}
|
|
||||||
|
|
||||||
export const getField = (field: FieldProp) => {
|
export const getField = (field: FieldProp) => {
|
||||||
const {
|
const {
|
||||||
label,
|
label,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user