diff --git a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/index.tsx b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/index.tsx
index 439049811..2525bf7a9 100644
--- a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/index.tsx
+++ b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/index.tsx
@@ -1,4 +1,4 @@
-import { BasicDrawer } from '@actiontech/shared';
+import { BasicDrawer } from '@actiontech/dms-kit';
import useCreateDataExportReduxManage from '../../../hooks/index.redux';
import useCreateExportTaskForm from '../../../hooks/useCreateExportTaskForm';
import { useRef } from 'react';
@@ -7,7 +7,7 @@ import { Divider, Spin } from 'antd';
import BaseInfoFormItem from '../../CreateTask/BaseInfoForm/BaseInfoFormItem';
import { useTranslation } from 'react-i18next';
import ExportSourceFormItem from '../../CreateTask/ExportSourceForm/ExportSourceFormItem';
-import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style';
+import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style';
import ExportMethodFormItem from '../../CreateTask/ExportMethodForm/ExportMethodFormItem';
import {
UpdateBseInfoFormStyleWrapper,
@@ -18,12 +18,9 @@ import {
} from './style';
import ExportFormAction from '../../CreateTask/ExportFormAction';
import BaseInfoTag from './BaseInfoTag';
-
const UpdateInfoDrawer: React.FC = () => {
const { t } = useTranslation();
-
const syncDataReady = useRef(false);
-
const { formValues, updateModalStatus, updateDataExportInfoOpen } =
useCreateDataExportReduxManage();
const {
@@ -34,25 +31,28 @@ const UpdateInfoDrawer: React.FC = () => {
formatSQLAction,
auditLoading
} = useCreateExportTaskForm();
-
const closeHandle = () => {
if (auditLoading) {
return;
}
-
updateModalStatus({
modalName: ModalName.DMS_UPDATE_EXPORT_TASK_INFO,
status: false
});
};
-
return (
{
if (open && !syncDataReady.current) {
- baseForm.setFieldsValue({ ...formValues?.baseValues });
- sourceForm.setFieldsValue({ ...formValues?.sourceValues });
- methodForm.setFieldsValue({ ...formValues?.methodValues });
+ baseForm.setFieldsValue({
+ ...formValues?.baseValues
+ });
+ sourceForm.setFieldsValue({
+ ...formValues?.sourceValues
+ });
+ methodForm.setFieldsValue({
+ ...formValues?.methodValues
+ });
syncDataReady.current = true;
}
}}
@@ -75,7 +75,11 @@ const UpdateInfoDrawer: React.FC = () => {
} />
-
+
{
{t('dmsDataExport.create.update.sourceTitle')}
-
+
-
+
{
);
};
-
export default UpdateInfoDrawer;
diff --git a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/style.ts b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/style.ts
index 3202859e5..4cbfef8d1 100644
--- a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/style.ts
+++ b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/UpdateInfoDrawer/style.ts
@@ -1,4 +1,4 @@
-import { FormStyleWrapper } from '@actiontech/shared/lib/components/CustomForm/style';
+import { FormStyleWrapper } from '@actiontech/dms-kit/es/components/CustomForm/style';
import { styled } from '@mui/material/styles';
export const UpdateTaskInfoFormTitleStyleWrapper = styled('div')`
diff --git a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/index.tsx b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/index.tsx
index 6c0c71910..75e37bfff 100644
--- a/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/index.tsx
+++ b/packages/base/src/page/DataExportManagement/Create/components/SubmitWorkflow/index.tsx
@@ -2,7 +2,7 @@ import { useCurrentProject } from '@actiontech/shared/lib/features';
import useCreateDataExportReduxManage from '../../hooks/index.redux';
import { useCallback, useEffect, useState } from 'react';
import UpdateInfoDrawer from './UpdateInfoDrawer';
-import { BasicButton, PageHeader } from '@actiontech/shared';
+import { BasicButton, PageHeader } from '@actiontech/dms-kit';
import { useTranslation } from 'react-i18next';
import BackToWorkflowList from '../../../Common/BackToWorkflowList';
import { Space } from 'antd';
@@ -10,12 +10,11 @@ import { ModalName } from '../../../../../data/ModalName';
import BasicInfoWrapper from '../../../Common/BasicInfoWrapper';
import AuditResultList from '../../../Common/AuditResultList';
import DataExportWorkflows from '@actiontech/shared/lib/api/base/service/DataExportWorkflows';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { CreateDataExportPageEnum } from '../../../../../store/dataExport';
import useCheckTaskAuditRuleExceptionStatus from '../../hooks/useCheckTaskAuditRuleExceptionStatus';
import { IListDataExportTaskSQL } from '@actiontech/shared/lib/api/base/service/common';
import SubmitWorkflowButton from './SubmitWorkflowButton';
-
const SubmitExportWorkflow: React.FC = () => {
const { t } = useTranslation();
const {
@@ -29,15 +28,12 @@ const SubmitExportWorkflow: React.FC = () => {
updateWorkflowID
} = useCreateDataExportReduxManage();
const { projectID } = useCurrentProject();
-
const [executeSQLsIsDQL, updateExecuteSQLsTypeIsDQL] = useState(true);
-
const {
hasExceptionAuditRule,
updateTaskAuditRuleExceptionStatus,
resetTaskAuditRuleExceptionStatus
} = useCheckTaskAuditRuleExceptionStatus();
-
const onSuccessGetDataExportTaskSqls = useCallback(
(taskSqls: IListDataExportTaskSQL[]) => {
updateTaskAuditRuleExceptionStatus(taskSqls);
@@ -47,12 +43,10 @@ const SubmitExportWorkflow: React.FC = () => {
},
[updateTaskAuditRuleExceptionStatus]
);
-
const onErrorGetDataExportTaskSqls = useCallback(() => {
resetTaskAuditRuleExceptionStatus();
updateExecuteSQLsTypeIsDQL(true);
}, [resetTaskAuditRuleExceptionStatus]);
-
const onSubmit = () => {
updateSubmitLoading(true);
DataExportWorkflows.AddDataExportWorkflow({
@@ -60,7 +54,10 @@ const SubmitExportWorkflow: React.FC = () => {
data_export_workflow: {
name: formValues?.baseValues.workflow_subject ?? '',
desc: formValues?.baseValues.desc,
- tasks: taskIDs?.map((v) => ({ task_uid: v ?? '' })) ?? []
+ tasks:
+ taskIDs?.map((v) => ({
+ task_uid: v ?? ''
+ })) ?? []
}
})
.then((res) => {
@@ -73,11 +70,9 @@ const SubmitExportWorkflow: React.FC = () => {
updateSubmitLoading(false);
});
};
-
useEffect(() => {
initModalStatus();
}, [initModalStatus]);
-
return (
<>
{
>
);
};
-
export default SubmitExportWorkflow;
diff --git a/packages/base/src/page/DataExportManagement/Create/hooks/__tests__/useCreateExportTaskForm.test.tsx b/packages/base/src/page/DataExportManagement/Create/hooks/__tests__/useCreateExportTaskForm.test.tsx
index ca5c6917b..b8c4aeb85 100644
--- a/packages/base/src/page/DataExportManagement/Create/hooks/__tests__/useCreateExportTaskForm.test.tsx
+++ b/packages/base/src/page/DataExportManagement/Create/hooks/__tests__/useCreateExportTaskForm.test.tsx
@@ -17,7 +17,7 @@ import dataExport from '@actiontech/shared/lib/testUtil/mockApi/base/dataExport'
import { AddDataExportTaskResponseData } from '@actiontech/shared/lib/testUtil/mockApi/base/dataExport/data';
import { useState } from 'react';
import { createSpyFailResponse } from '@actiontech/shared/lib/testUtil/mockApi';
-import { formatterSQL } from '@actiontech/shared/lib/utils/FormatterSQL';
+import { formatterSQL } from '@actiontech/dms-kit';
describe('test base/DataExport/Create/hooks/useCreateExportTaskForm', () => {
const CustomCom = ({
diff --git a/packages/base/src/page/DataExportManagement/Create/hooks/useCreateExportTaskForm.ts b/packages/base/src/page/DataExportManagement/Create/hooks/useCreateExportTaskForm.ts
index fcff8d67f..0d3ef8cd4 100644
--- a/packages/base/src/page/DataExportManagement/Create/hooks/useCreateExportTaskForm.ts
+++ b/packages/base/src/page/DataExportManagement/Create/hooks/useCreateExportTaskForm.ts
@@ -8,8 +8,8 @@ import {
MethodFormFieldsType,
SourceFormFieldsType
} from '../components/CreateTask/index.type';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
-import { formatterSQL } from '@actiontech/shared/lib/utils/FormatterSQL';
+import { ResponseCode } from '@actiontech/dms-kit';
+import { formatterSQL } from '@actiontech/dms-kit';
const useCreateExportTaskForm = () => {
const [baseForm] = useForm();
diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTag.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTag.tsx
index f92df3658..64b82a3f0 100644
--- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTag.tsx
+++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTag.tsx
@@ -1,4 +1,4 @@
-import { BasicTag } from '@actiontech/shared';
+import { BasicTag } from '@actiontech/dms-kit';
import { useTranslation } from 'react-i18next';
import { RuleResV1LevelEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum';
import { useMemo } from 'react';
@@ -10,30 +10,25 @@ import {
CloseCircleFilled,
CheckCircleFilled
} from '@actiontech/icons';
-
-const AuditResultTag: React.FC<{ auditResult?: IAuditSQLResult[] }> = ({
- auditResult
-}) => {
+const AuditResultTag: React.FC<{
+ auditResult?: IAuditSQLResult[];
+}> = ({ auditResult }) => {
const { t } = useTranslation();
-
const noticeResult = useMemo(() => {
return (
auditResult?.filter((i) => i.level === RuleResV1LevelEnum.notice) || []
);
}, [auditResult]);
-
const errorResult = useMemo(() => {
return (
auditResult?.filter((i) => i.level === RuleResV1LevelEnum.error) || []
);
}, [auditResult]);
-
const warnResult = useMemo(() => {
return (
auditResult?.filter((i) => i.level === RuleResV1LevelEnum.warn) || []
);
}, [auditResult]);
-
if (!auditResult?.length) {
return (
= ({
);
}
};
-
export default AuditResultTag;
diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTree.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTree.tsx
index a6c963475..0729c93b3 100644
--- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTree.tsx
+++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/AuditResultTree.tsx
@@ -5,7 +5,7 @@ import { IAuditSQLResult } from '@actiontech/shared/lib/api/base/service/common'
import AuditResultMessage from 'sqle/src/components/AuditResultMessage';
import { ExportResultTreeStyleWrapper } from '../../style';
import { DownOutlined } from '@actiontech/icons';
-import { CommonIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element';
+import { CommonIconStyleWrapper } from '@actiontech/dms-kit';
const AuditResultTree: React.FC<{ auditResult?: IAuditSQLResult[] }> = ({
auditResult
diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/__tests__/index.test.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/__tests__/index.test.tsx
index ca1d863c3..c759c0a1d 100644
--- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/__tests__/index.test.tsx
+++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/__tests__/index.test.tsx
@@ -3,7 +3,7 @@ import ExportResultCard from '..';
import { baseSuperRender } from '../../../../../../../../testUtils/superRender';
import { ListDataExportTaskSQLsResponseData } from '@actiontech/shared/lib/testUtil/mockApi/base/dataExport/data';
import { mockDataExportDetailRedux } from '../../../../../testUtils/mockUseDataExportDetailReduxManage';
-import { Copy } from '@actiontech/shared';
+import { Copy } from '@actiontech/dms-kit';
describe('test base/DataExport/Detail/ExportTaskList/ResultCard', () => {
it('should match snapshot', () => {
diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/index.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/index.tsx
index 19aeaf317..f5565930d 100644
--- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/index.tsx
+++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/ResultCard/index.tsx
@@ -1,4 +1,5 @@
-import { BasicButton, Copy, HighlightCode } from '@actiontech/shared';
+import { BasicButton } from '@actiontech/dms-kit';
+import { Copy, HighlightCode } from '@actiontech/dms-kit';
import { Divider, Space, message } from 'antd';
import { useTranslation } from 'react-i18next';
import { ExportResultCardProp } from './index.type';
@@ -10,18 +11,14 @@ import {
} from '../../style';
import AuditResultTag from './AuditResultTag';
import { DownOutlined } from '@actiontech/icons';
-import { CommonIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element';
-
+import { CommonIconStyleWrapper } from '@actiontech/dms-kit';
const ExportResultCard: React.FC = (props) => {
const { t } = useTranslation();
-
const [messageApi, contextHolder] = message.useMessage();
-
const onCopyExecSql = () => {
Copy.copyTextByTextarea(props.sql ?? '');
messageApi.success(t('common.copied'));
};
-
return (
{contextHolder}
@@ -88,5 +85,4 @@ const ExportResultCard: React.FC = (props) => {
);
};
-
export default ExportResultCard;
diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/index.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/index.tsx
index 7a7976077..2447a1cea 100644
--- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/index.tsx
+++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/ExportTaskList/index.tsx
@@ -5,7 +5,7 @@ import DataExportTask from '@actiontech/shared/lib/api/base/service/DataExportTa
import {
useTableRequestError,
useTableRequestParams
-} from '@actiontech/shared/lib/components/ActiontechTable';
+} from '@actiontech/dms-kit/es/components/ActiontechTable';
import { useCurrentProject } from '@actiontech/shared/lib/features';
import { useTranslation } from 'react-i18next';
import ResultCard from './ResultCard';
diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/OverviewList/column.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/OverviewList/column.tsx
index e0ae69451..03e44749a 100644
--- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/OverviewList/column.tsx
+++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/OverviewList/column.tsx
@@ -2,15 +2,14 @@ import { IGetDataExportTask } from '@actiontech/shared/lib/api/base/service/comm
import {
ActiontechTableColumn,
ActiontechTableProps
-} from '@actiontech/shared/lib/components/ActiontechTable';
+} from '@actiontech/dms-kit/es/components/ActiontechTable';
import { t } from '../../../../../../locale';
import ExportTaskStatus from '../../../../Common/TaskStatus';
-import { formatTime } from '@actiontech/shared/lib/utils/Common';
+import { formatTime } from '@actiontech/dms-kit';
import dayjs from 'dayjs';
import { GetDataExportTaskStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum';
-import { BasicToolTip } from '@actiontech/shared';
+import { BasicToolTip } from '@actiontech/dms-kit';
import { InfoCircleOutlined } from '@actiontech/icons';
-
export const OverviewListColumn: () => ActiontechTableColumn<
IGetDataExportTask,
unknown,
@@ -59,14 +58,12 @@ export const OverviewListColumn: () => ActiontechTableColumn<
}
];
};
-
const checkExportTimeHasExpired = (startTime?: string, timeout = 24) => {
if (!startTime || !dayjs(startTime)) {
return true;
}
return dayjs().isAfter(dayjs(startTime).add(timeout, 'hour'));
};
-
export const OverviewListAction: (
downloadLoading: boolean,
downloadAction: (taskID: string) => void
diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/OverviewList/index.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/OverviewList/index.tsx
index 873b8bfda..ad05aa529 100644
--- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/OverviewList/index.tsx
+++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/OverviewList/index.tsx
@@ -1,4 +1,4 @@
-import { ActiontechTable } from '@actiontech/shared/lib/components/ActiontechTable';
+import { ActiontechTable } from '@actiontech/dms-kit/es/components/ActiontechTable';
import useDataExportDetailReduxManage from '../../../hooks/index.redux';
import { OverviewListAction, OverviewListColumn } from './column';
import DataExportTask from '@actiontech/shared/lib/api/base/service/DataExportTask';
diff --git a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/index.tsx b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/index.tsx
index 19b2d40a3..ae651c321 100644
--- a/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/index.tsx
+++ b/packages/base/src/page/DataExportManagement/Detail/components/ExportDetail/index.tsx
@@ -1,7 +1,7 @@
import { useTranslation } from 'react-i18next';
import { WorkflowDetailExportResultStyleWrapper } from './style';
-import { SegmentedRowStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element';
-import { BasicButton, BasicSegmented, EmptyBox } from '@actiontech/shared';
+import { SegmentedRowStyleWrapper } from '@actiontech/dms-kit';
+import { BasicButton, BasicSegmented, EmptyBox } from '@actiontech/dms-kit';
import useDataExportDetailReduxManage from '../../hooks/index.redux';
import OverviewList from './OverviewList';
import ExportTaskList from './ExportTaskList';
@@ -11,15 +11,12 @@ import DataExportTask from '@actiontech/shared/lib/api/base/service/DataExportTa
import { useCurrentProject } from '@actiontech/shared/lib/features';
import { useBoolean } from 'ahooks';
import { PanelCardOutlined } from '@actiontech/icons';
-
const OVERVIEW_TAB_KEY = 'OVERVIEW_TAB_KEY';
-
const ExportDetail: React.FC = () => {
const { t } = useTranslation();
const { projectID } = useCurrentProject();
const { taskInfos, curTaskID, updateCurTaskID } =
useDataExportDetailReduxManage();
-
const generateCurrentTaskLabel = (
dbServiceName?: string,
auditLevel?: AuditTaskResV1AuditLevelEnum
@@ -27,7 +24,6 @@ const ExportDetail: React.FC = () => {
if (!dbServiceName) {
return '-';
}
-
return (
{
/>
);
};
-
const [
downloadSQLsLoading,
{ setFalse: finishDownloadSQLs, setTrue: startDownloadSQLs }
@@ -51,7 +46,6 @@ const ExportDetail: React.FC = () => {
finishDownloadSQLs();
}
};
-
return (
@@ -99,5 +93,4 @@ const ExportDetail: React.FC = () => {
);
};
-
export default ExportDetail;
diff --git a/packages/base/src/page/DataExportManagement/Detail/components/PageHeaderAction/actions.tsx b/packages/base/src/page/DataExportManagement/Detail/components/PageHeaderAction/actions.tsx
index 5d8c09c94..36cd5e51f 100644
--- a/packages/base/src/page/DataExportManagement/Detail/components/PageHeaderAction/actions.tsx
+++ b/packages/base/src/page/DataExportManagement/Detail/components/PageHeaderAction/actions.tsx
@@ -6,7 +6,6 @@ import {
import { ActionButton } from '@actiontech/shared';
import { ActionMeta } from './index.type';
import { Divider } from 'antd';
-
export const CloseWorkflowAction = (closeWorkflowButtonMeta: ActionMeta) => {
return (
@@ -26,7 +25,6 @@ export const CloseWorkflowAction = (closeWorkflowButtonMeta: ActionMeta) => {
);
};
-
export const RejectWorkflowAction = (rejectWorkflowButtonMeta: ActionMeta) => {
return (
@@ -38,7 +36,6 @@ export const RejectWorkflowAction = (rejectWorkflowButtonMeta: ActionMeta) => {
);
};
-
export const ApproveWorkflowAction = (
approveWorkflowButtonMeta: ActionMeta
) => {
@@ -56,7 +53,6 @@ export const ApproveWorkflowAction = (
);
};
-
export const ExecuteWorkflowAction = (executeExportButtonMeta: ActionMeta) => {
return (
{
const { t } = useTranslation();
-
const [messageApi, messageContextHolder] = message.useMessage();
-
const { workflowStepOpen, updateWorkflowStepOpen } =
useDataExportDetailReduxManage();
-
const workflowDetailClickHandle = () => {
updateWorkflowStepOpen(true);
};
-
const {
closeWorkflowButtonMeta,
approveWorkflowButtonMeta,
executeExportButtonMeta,
rejectWorkflowButtonMeta
} = useActionButtonState(messageApi);
-
return (
{messageContextHolder}
@@ -64,5 +58,4 @@ const ExportDetailPageHeaderAction: React.FC = () => {
);
};
-
export default ExportDetailPageHeaderAction;
diff --git a/packages/base/src/page/DataExportManagement/Detail/components/RejectReason/RejectWorkflowModal/index.tsx b/packages/base/src/page/DataExportManagement/Detail/components/RejectReason/RejectWorkflowModal/index.tsx
index 457c86131..38a4fcbaa 100644
--- a/packages/base/src/page/DataExportManagement/Detail/components/RejectReason/RejectWorkflowModal/index.tsx
+++ b/packages/base/src/page/DataExportManagement/Detail/components/RejectReason/RejectWorkflowModal/index.tsx
@@ -1,4 +1,4 @@
-import { BasicButton, BasicInput, BasicModal } from '@actiontech/shared';
+import { BasicButton, BasicInput, BasicModal } from '@actiontech/dms-kit';
import { Form, message } from 'antd';
import { useTranslation } from 'react-i18next';
import { RejectWorkflowModalFormFields } from './index.type';
@@ -7,34 +7,27 @@ import { RejectWorkflowModalAlertStyleWrapper } from './style';
import { useBoolean } from 'ahooks';
import DataExportWorkflows from '@actiontech/shared/lib/api/base/service/DataExportWorkflows';
import { useCurrentProject } from '@actiontech/shared/lib/features';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import EmitterKey from '../../../../../../data/EmitterKey';
import eventEmitter from '../../../../../../utils/EventEmitter';
-
const RejectWorkflowModal: React.FC = () => {
const { workflowRejectOpen, updateWorkflowRejectOpen, workflowInfo } =
useDataExportDetailReduxManage();
-
const closeModal = () => {
updateWorkflowRejectOpen(false);
};
const { projectID } = useCurrentProject();
const [messageApi, messageContextHolder] = message.useMessage();
-
const [form] = Form.useForm();
-
const { t } = useTranslation();
-
const resetAndCloseRejectModal = () => {
form.resetFields();
closeModal();
};
-
const [
rejectWorkflowLoading,
{ setFalse: finishRejectWorkflow, setTrue: startRejectWorkflow }
] = useBoolean();
-
const rejectWorkflow = (
workflowID: string,
values: RejectWorkflowModalFormFields
@@ -59,7 +52,6 @@ const RejectWorkflowModal: React.FC = () => {
finishRejectWorkflow();
});
};
-
return (
{
);
};
-
export default RejectWorkflowModal;
diff --git a/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowBasicInfo.tsx b/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowBasicInfo.tsx
index 4c016cd24..95ea0a236 100644
--- a/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowBasicInfo.tsx
+++ b/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowBasicInfo.tsx
@@ -1,11 +1,11 @@
import { useTranslation } from 'react-i18next';
import { WorkflowBasicInfoProps } from './index.type';
-import { CustomAvatar } from '@actiontech/shared';
+import { CustomAvatar } from '@actiontech/dms-kit';
import { Space } from 'antd';
import WorkflowStatus from '../../../Common/WorkflowStatus';
import { ListDataExportWorkflowStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum';
import { ClockCircleOutlined } from '@actiontech/icons';
-import { CommonIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element';
+import { CommonIconStyleWrapper } from '@actiontech/dms-kit';
const WorkflowBasicInfo: React.FC = ({
createTime,
createUserName,
@@ -59,5 +59,4 @@ const WorkflowBasicInfo: React.FC = ({
);
};
-
export default WorkflowBasicInfo;
diff --git a/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowSteps.tsx b/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowSteps.tsx
index 8ed9310f1..38d4e26a9 100644
--- a/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowSteps.tsx
+++ b/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/WorkflowSteps.tsx
@@ -4,8 +4,8 @@ import { WorkflowStepsProps } from './index.type';
import { useCallback, useMemo } from 'react';
import { CustomSteps, WorkflowStepsItemStyleWrapper } from './style';
import { Space } from 'antd';
-import { formatTime } from '@actiontech/shared/lib/utils/Common';
-import { EmptyBox } from '@actiontech/shared';
+import { formatTime } from '@actiontech/dms-kit';
+import { EmptyBox } from '@actiontech/dms-kit';
import useThemeStyleData from '../../../../../hooks/useThemeStyleData';
import { WorkflowRecordStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum';
import { IWorkflowStep } from '@actiontech/shared/lib/api/base/service/common';
@@ -16,7 +16,6 @@ import {
PlusCircleFilled,
CheckCircleFilled
} from '@actiontech/icons';
-
const WorkflowSteps: React.FC = ({
workflowSteps,
currentStepNumber,
@@ -38,11 +37,9 @@ const WorkflowSteps: React.FC = ({
) {
return 2;
}
-
if (workflowStatus === WorkflowRecordStatusEnum.wait_for_export) {
return 3;
}
-
if (
[
WorkflowRecordStatusEnum.exporting,
@@ -54,7 +51,6 @@ const WorkflowSteps: React.FC = ({
return 4;
}
}, [currentStepNumber, workflowStatus]);
-
const renderTitle = useCallback(
(type?: string) => {
if (type === 'create') {
@@ -68,16 +64,13 @@ const WorkflowSteps: React.FC = ({
if (type === 'approve') {
return t('dmsDataExport.detail.record.steps.approve');
}
-
if (type === 'execute') {
return t('dmsDataExport.detail.record.steps.execute');
}
-
return t('dmsDataExport.detail.operator.unknown');
},
[t]
);
-
const renderOrderStepsItemContent = useCallback(
(step: IWorkflowStep) => {
if (step.type === 'execute') {
@@ -142,7 +135,6 @@ const WorkflowSteps: React.FC = ({
taskStatusNumber?.exporting
]
);
-
const renderOrderStepsItem = useCallback(
(title: string, step: any) => {
return (
@@ -155,13 +147,11 @@ const WorkflowSteps: React.FC = ({
},
[renderOrderStepsItemContent]
);
-
const renderOrderStepsItemIcon = useCallback(
(type?: string) => {
if (type === 'create') {
return ;
}
-
if (type === 'approve') {
const isRejected = workflowStatus === WorkflowRecordStatusEnum.rejected;
return (
@@ -171,7 +161,6 @@ const WorkflowSteps: React.FC = ({
/>
);
}
-
if (type === 'execute') {
if (
workflowStatus &&
@@ -182,7 +171,6 @@ const WorkflowSteps: React.FC = ({
) {
return ;
}
-
if (workflowStatus === WorkflowRecordStatusEnum.failed) {
return ;
}
@@ -191,7 +179,6 @@ const WorkflowSteps: React.FC = ({
},
[workflowStatus, sharedTheme.uiToken.colorWarning]
);
-
const stepsItems = useMemo(() => {
if (!workflowSteps) {
return [];
@@ -202,7 +189,9 @@ const WorkflowSteps: React.FC = ({
{
type: 'create',
number: 1,
- operation_user: { name: createUser },
+ operation_user: {
+ name: createUser
+ },
operation_time: createTime
},
{
@@ -210,14 +199,18 @@ const WorkflowSteps: React.FC = ({
type: 'approve',
number: 2
},
- { type: 'execute', number: 3 }
+ {
+ type: 'execute',
+ number: 3
+ }
].map((v, i) => {
const isNextRejected = workflowSteps[i + 1]?.state === 'rejected';
-
return {
title: renderOrderStepsItem(renderTitle(v.type), v),
icon: renderOrderStepsItemIcon(v.type),
- className: classNames({ 'prev-rejected-step': isNextRejected })
+ className: classNames({
+ 'prev-rejected-step': isNextRejected
+ })
};
});
}, [
@@ -243,5 +236,4 @@ const WorkflowSteps: React.FC = ({
);
};
-
export default WorkflowSteps;
diff --git a/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/index.tsx b/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/index.tsx
index b292739f5..06a3b1c36 100644
--- a/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/index.tsx
+++ b/packages/base/src/page/DataExportManagement/Detail/components/WorkflowRecordInfo/index.tsx
@@ -1,7 +1,7 @@
import { useTranslation } from 'react-i18next';
import { WorkflowStepsStyleWrapper } from './style';
import WorkflowBasicInfo from './WorkflowBasicInfo';
-import { formatTime } from '@actiontech/shared/lib/utils/Common';
+import { formatTime } from '@actiontech/dms-kit';
import WorkflowSteps from './WorkflowSteps';
import useDataExportDetailReduxManage from '../../hooks/index.redux';
import { CloseOutlined } from '@actiontech/icons';
diff --git a/packages/base/src/page/DataExportManagement/Detail/hooks/useExportDetailAction.ts b/packages/base/src/page/DataExportManagement/Detail/hooks/useExportDetailAction.ts
index b2084ec4a..f19bd7709 100644
--- a/packages/base/src/page/DataExportManagement/Detail/hooks/useExportDetailAction.ts
+++ b/packages/base/src/page/DataExportManagement/Detail/hooks/useExportDetailAction.ts
@@ -2,7 +2,7 @@ import DataExportWorkflows from '@actiontech/shared/lib/api/base/service/DataExp
import EmitterKey from '../../../../data/EmitterKey';
import eventEmitter from '../../../../utils/EventEmitter';
import { useCurrentProject } from '@actiontech/shared/lib/features';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { useTranslation } from 'react-i18next';
import { useBoolean } from 'ahooks';
import { MessageInstance } from 'antd/es/message/interface';
diff --git a/packages/base/src/page/DataExportManagement/Detail/hooks/useInitDataWithRequest.ts b/packages/base/src/page/DataExportManagement/Detail/hooks/useInitDataWithRequest.ts
index 735c1b358..ba73b5f63 100644
--- a/packages/base/src/page/DataExportManagement/Detail/hooks/useInitDataWithRequest.ts
+++ b/packages/base/src/page/DataExportManagement/Detail/hooks/useInitDataWithRequest.ts
@@ -1,6 +1,6 @@
import DataExportTask from '@actiontech/shared/lib/api/base/service/DataExportTask';
import DataExportWorkflows from '@actiontech/shared/lib/api/base/service/DataExportWorkflows';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { useCurrentProject } from '@actiontech/shared/lib/features';
import useDataExportDetailReduxManage from './index.redux';
import { useRequest } from 'ahooks';
@@ -9,7 +9,7 @@ import eventEmitter from '../../../../utils/EventEmitter';
import EmitterKey from '../../../../data/EmitterKey';
import { GetDataExportTaskStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum';
import { useTypedParams } from '@actiontech/shared';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
const useInitDataWithRequest = () => {
const { workflowID } =
diff --git a/packages/base/src/page/DataExportManagement/Detail/index.tsx b/packages/base/src/page/DataExportManagement/Detail/index.tsx
index 19ffa374a..d6eee6f09 100644
--- a/packages/base/src/page/DataExportManagement/Detail/index.tsx
+++ b/packages/base/src/page/DataExportManagement/Detail/index.tsx
@@ -1,7 +1,7 @@
import { Spin } from 'antd';
import { WorkflowDetailStyleWrapper } from './style';
import BackToWorkflowList from '../Common/BackToWorkflowList';
-import { EmptyBox, PageHeader } from '@actiontech/shared';
+import { EmptyBox, PageHeader } from '@actiontech/dms-kit';
import { useEffect, useMemo } from 'react';
import useDataExportDetailReduxManage from './hooks/index.redux';
import BasicInfoWrapper from '../Common/BasicInfoWrapper';
@@ -15,25 +15,20 @@ import ExportDetail from './components/ExportDetail';
import ExportDetailPageHeaderAction from './components/PageHeaderAction';
import WorkflowRecordInfo from './components/WorkflowRecordInfo';
import RejectWorkflowModal from './components/RejectReason/RejectWorkflowModal';
-
const WorkflowDetail: React.FC = () => {
const { clearAllDetailState, workflowInfo, workflowStepOpen } =
useDataExportDetailReduxManage();
-
const { getTaskInfosLoading, getWorkflowLoading } = useInitDataWithRequest();
-
const currentRejectedStep = useMemo(() => {
return workflowInfo?.workflow_record?.workflow_step_list?.find(
(v) => v.state === WorkflowStepStateEnum.rejected
);
}, [workflowInfo?.workflow_record?.workflow_step_list]);
-
useEffect(() => {
return () => {
clearAllDetailState();
};
}, [clearAllDetailState]);
-
return (
@@ -70,5 +65,4 @@ const WorkflowDetail: React.FC = () => {
);
};
-
export default WorkflowDetail;
diff --git a/packages/base/src/page/DataExportManagement/List/__tests__/index.test.tsx b/packages/base/src/page/DataExportManagement/List/__tests__/index.test.tsx
index f50caa19b..fdf0ca963 100644
--- a/packages/base/src/page/DataExportManagement/List/__tests__/index.test.tsx
+++ b/packages/base/src/page/DataExportManagement/List/__tests__/index.test.tsx
@@ -16,7 +16,7 @@ import {
getBySelector
} from '@actiontech/shared/lib/testUtil/customQuery';
import { DataExportWorkflowList } from '@actiontech/shared/lib/testUtil/mockApi/base/dataExport/data';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
jest.mock('react-router-dom', () => {
return {
diff --git a/packages/base/src/page/DataExportManagement/List/actions.tsx b/packages/base/src/page/DataExportManagement/List/actions.tsx
index 06457695c..a9e382045 100644
--- a/packages/base/src/page/DataExportManagement/List/actions.tsx
+++ b/packages/base/src/page/DataExportManagement/List/actions.tsx
@@ -6,8 +6,7 @@ import {
} from '@actiontech/shared/lib/features';
import { MinusCircleOutlined, PlusOutlined } from '@actiontech/icons';
import { ActionButton } from '@actiontech/shared';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
-
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
export const DataExportManagementTableToolbarActions = ({
disabled,
loading,
@@ -39,7 +38,6 @@ export const DataExportManagementTableToolbarActions = ({
}
];
};
-
export const DataExportManagementCreateAction = (
projectID: string
): React.ReactNode => {
@@ -52,7 +50,9 @@ export const DataExportManagementCreateAction = (
icon={
}
link={{
to: ROUTE_PATHS.BASE.DATA_EXPORT.create,
- params: { projectID }
+ params: {
+ projectID
+ }
}}
/>
diff --git a/packages/base/src/page/DataExportManagement/List/column.tsx b/packages/base/src/page/DataExportManagement/List/column.tsx
index 4b3d8f08f..f932af97c 100644
--- a/packages/base/src/page/DataExportManagement/List/column.tsx
+++ b/packages/base/src/page/DataExportManagement/List/column.tsx
@@ -3,22 +3,23 @@ import {
ActiontechTableFilterMeta,
ActiontechTableFilterMetaValue,
PageInfoWithoutIndexAndSize
-} from '@actiontech/shared/lib/components/ActiontechTable';
+} from '@actiontech/dms-kit/es/components/ActiontechTable';
import { t } from '../../../locale';
-import { formatTime } from '@actiontech/shared/lib/utils/Common';
-import { CustomAvatar, BasicTypographyEllipsis } from '@actiontech/shared';
+import { formatTime } from '@actiontech/dms-kit';
+import { CustomAvatar } from '@actiontech/dms-kit';
+import { BasicTypographyEllipsis } from '@actiontech/shared';
import WorkflowStatus from '../Common/WorkflowStatus';
import { IListDataExportWorkflow } from '@actiontech/shared/lib/api/base/service/common';
import { IListDataExportWorkflowsParams } from '@actiontech/shared/lib/api/base/service/DataExportWorkflows/index.d';
-import { TableColumnWithIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element';
+import { TableColumnWithIconStyleWrapper } from '@actiontech/dms-kit';
import { BriefcaseFilled } from '@actiontech/icons';
import { IListDataExportWorkflowWithExtraParams } from './index.type';
-
export type ExportWorkflowListFilterParamType = PageInfoWithoutIndexAndSize<
- IListDataExportWorkflowsParams & { page_index: number },
+ IListDataExportWorkflowsParams & {
+ page_index: number;
+ },
'project_uid'
>;
-
export const ExportWorkflowExtraFilterMeta: () => ActiontechTableFilterMeta<
IListDataExportWorkflowWithExtraParams,
ExportWorkflowListFilterParamType
@@ -40,7 +41,6 @@ export const ExportWorkflowExtraFilterMeta: () => ActiontechTableFilterMeta<
]
]);
};
-
export const ExportWorkflowListColumn: (
projectID: string
) => ActiontechTableColumn<
diff --git a/packages/base/src/page/DataExportManagement/List/components/WorkflowStatusFilter.tsx b/packages/base/src/page/DataExportManagement/List/components/WorkflowStatusFilter.tsx
index b6480fa9b..fc82856ee 100644
--- a/packages/base/src/page/DataExportManagement/List/components/WorkflowStatusFilter.tsx
+++ b/packages/base/src/page/DataExportManagement/List/components/WorkflowStatusFilter.tsx
@@ -1,8 +1,7 @@
import { useTranslation } from 'react-i18next';
-import { BasicSegmented } from '@actiontech/shared';
+import { BasicSegmented } from '@actiontech/dms-kit';
import { ListDataExportWorkflowsFilterByStatusEnum } from '@actiontech/shared/lib/api/base/service/DataExportWorkflows/index.enum';
import { DataExportStatusDictionary } from '../../Common/index.data';
-
const WorkflowStatusFilter: React.FC<{
status: ListDataExportWorkflowsFilterByStatusEnum | 'all';
onChange: (status: ListDataExportWorkflowsFilterByStatusEnum | 'all') => void;
@@ -33,5 +32,4 @@ const WorkflowStatusFilter: React.FC<{
/>
);
};
-
export default WorkflowStatusFilter;
diff --git a/packages/base/src/page/DataExportManagement/List/index.tsx b/packages/base/src/page/DataExportManagement/List/index.tsx
index d3f753d20..06cf229e8 100644
--- a/packages/base/src/page/DataExportManagement/List/index.tsx
+++ b/packages/base/src/page/DataExportManagement/List/index.tsx
@@ -1,4 +1,5 @@
-import { PageHeader, useTypedNavigate } from '@actiontech/shared';
+import { PageHeader } from '@actiontech/dms-kit';
+import { useTypedNavigate } from '@actiontech/shared';
import {
useTableRequestParams,
TableToolbar,
@@ -9,7 +10,7 @@ import {
FilterCustomProps,
ActiontechTable,
ActiontechTableWrapper
-} from '@actiontech/shared/lib/components/ActiontechTable';
+} from '@actiontech/dms-kit/es/components/ActiontechTable';
import {
useCurrentProject,
useCurrentUser,
@@ -34,39 +35,30 @@ import { IListDataExportWorkflow } from '@actiontech/shared/lib/api/base/service
import { ListDBServiceTipsFunctionalModuleEnum } from '@actiontech/shared/lib/api/base/service/DBService/index.enum';
import { ListDataExportWorkflowsFilterByStatusEnum } from '@actiontech/shared/lib/api/base/service/DataExportWorkflows/index.enum';
import useMemberTips from '../../../hooks/useMemberTips';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { ListDataExportWorkflowStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
import {
DataExportManagementTableToolbarActions,
DataExportManagementCreateAction
} from './actions';
import { IListDataExportWorkflowWithExtraParams } from './index.type';
-
const ExportWorkflowList: React.FC = () => {
const { t } = useTranslation();
const navigate = useTypedNavigate();
-
const [messageApi, messageContextHolder] = message.useMessage();
-
const { projectID } = useCurrentProject();
const { username } = useCurrentUser();
-
const { parse2TableToolbarActionPermissions, checkActionPermission } =
usePermission();
-
const [filterStatus, setFilterStatus] = useState<
ListDataExportWorkflowsFilterByStatusEnum | 'all'
>('all');
-
const [selectedRowKeys, setSelectedRowKeys] = useState
([]);
-
const { requestErrorMessage, handleTableRequestError } =
useTableRequestError();
-
const { dbServiceIDOptions, updateDbServiceList } = useDbService();
const { memberOptions, updateMemberTips } = useMemberTips();
-
const {
tableFilterInfo,
updateTableFilterInfo,
@@ -79,22 +71,18 @@ const ExportWorkflowList: React.FC = () => {
IListDataExportWorkflowWithExtraParams,
ExportWorkflowListFilterParamType
>();
-
const columns = useMemo(() => {
return ExportWorkflowListColumn(projectID);
}, [projectID]);
-
const { filterButtonMeta, filterContainerMeta, updateAllSelectedFilterItem } =
useTableFilterContainer<
IListDataExportWorkflowWithExtraParams,
ExportWorkflowListFilterParamType
>(columns, updateTableFilterInfo, ExportWorkflowExtraFilterMeta());
-
const tableSetting: ColumnsSettingProps = {
tableName: 'export_workflow_list',
username: username
};
-
const filterCustomProps = useMemo(() => {
return new Map<
keyof IListDataExportWorkflowWithExtraParams,
@@ -106,23 +94,40 @@ const ExportWorkflowList: React.FC = () => {
options: dbServiceIDOptions
}
],
- ['created_at', { showTime: true }],
- ['exported_at', { showTime: true }],
- ['creater', { options: memberOptions }],
- ['current_step_assignee_user_list', { options: memberOptions }]
+ [
+ 'created_at',
+ {
+ showTime: true
+ }
+ ],
+ [
+ 'exported_at',
+ {
+ showTime: true
+ }
+ ],
+ [
+ 'creater',
+ {
+ options: memberOptions
+ }
+ ],
+ [
+ 'current_step_assignee_user_list',
+ {
+ options: memberOptions
+ }
+ ]
]);
}, [dbServiceIDOptions, memberOptions]);
-
const rowSelection = {
selectedRowKeys,
onChange: (keys: string[]) => {
setSelectedRowKeys(keys);
}
};
-
const [batchCloseConfirmLoading, setBatchCloseConfirmLoading] =
useState(false);
-
const {
data: exportWorkflowList,
loading,
@@ -144,7 +149,6 @@ const ExportWorkflowList: React.FC = () => {
refreshDeps: [tableFilterInfo, pagination, filterStatus]
}
);
-
const batchCloseWorkflowAction = useCallback(() => {
const canCancel: boolean = selectedRowKeys.every((e) => {
const status = exportWorkflowList?.list?.filter(
@@ -157,7 +161,6 @@ const ExportWorkflowList: React.FC = () => {
});
if (canCancel) {
setBatchCloseConfirmLoading(true);
-
DataExportWorkflows.CancelDataExportWorkflow({
payload: {
data_export_workflow_uids: selectedRowKeys
@@ -189,7 +192,6 @@ const ExportWorkflowList: React.FC = () => {
exportWorkflowList?.list,
refresh
]);
-
const tableToolbarActions = useMemo(() => {
return parse2TableToolbarActionPermissions(
DataExportManagementTableToolbarActions({
@@ -204,16 +206,16 @@ const ExportWorkflowList: React.FC = () => {
selectedRowKeys,
batchCloseWorkflowAction
]);
-
useEffect(() => {
updateDbServiceList({
project_uid: projectID,
functional_module:
ListDBServiceTipsFunctionalModuleEnum.create_export_task
});
- updateMemberTips({ project_uid: projectID });
+ updateMemberTips({
+ project_uid: projectID
+ });
}, [projectID, updateDbServiceList, updateMemberTips]);
-
return (
{messageContextHolder}
@@ -224,7 +226,10 @@ const ExportWorkflowList: React.FC = () => {
{
return {
onClick() {
navigate(ROUTE_PATHS.BASE.DATA_EXPORT.detail, {
- params: { projectID, workflowID: record.workflow_uid ?? '' }
+ params: {
+ projectID,
+ workflowID: record.workflow_uid ?? ''
+ }
});
}
};
@@ -284,5 +292,4 @@ const ExportWorkflowList: React.FC = () => {
);
};
-
export default ExportWorkflowList;
diff --git a/packages/base/src/page/DataExportManagement/index.tsx b/packages/base/src/page/DataExportManagement/index.tsx
index fd8114196..877dec9f3 100644
--- a/packages/base/src/page/DataExportManagement/index.tsx
+++ b/packages/base/src/page/DataExportManagement/index.tsx
@@ -1,12 +1,10 @@
import { Typography } from 'antd';
import { useTranslation } from 'react-i18next';
import { EnterpriseFeatureDisplay } from '@actiontech/shared';
-import { PageHeader } from '@actiontech/shared';
+import { PageHeader } from '@actiontech/dms-kit';
import { Outlet } from 'react-router-dom';
-
const DataExportManagement: React.FC = () => {
const { t } = useTranslation();
-
return (
{/* #if [ce] */}
@@ -25,5 +23,4 @@ const DataExportManagement: React.FC = () => {
);
};
-
export default DataExportManagement;
diff --git a/packages/base/src/page/DataSource/components/AddDataSource/index.tsx b/packages/base/src/page/DataSource/components/AddDataSource/index.tsx
index f56c6b477..d65debd9b 100644
--- a/packages/base/src/page/DataSource/components/AddDataSource/index.tsx
+++ b/packages/base/src/page/DataSource/components/AddDataSource/index.tsx
@@ -3,40 +3,33 @@ import { useBoolean } from 'ahooks';
import { useCallback } from 'react';
import { useForm } from 'antd/es/form/Form';
import { Space, Typography } from 'antd';
-import { PageLayoutHasFixedHeaderStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element';
+import { PageLayoutHasFixedHeaderStyleWrapper } from '@actiontech/dms-kit';
import {
BasicButton,
PageHeader,
BasicResult,
- EmptyBox,
- BackButton,
- useTypedNavigate
-} from '@actiontech/shared';
+ EmptyBox
+} from '@actiontech/dms-kit';
+import { BackButton, useTypedNavigate } from '@actiontech/shared';
import DataSourceForm from '../Form';
import EmitterKey from '../../../../data/EmitterKey';
import EventEmitter from '../../../../utils/EventEmitter';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { IDBServiceV2 } from '@actiontech/shared/lib/api/base/service/common';
import { DataSourceFormField } from '../Form/index.type';
import { DmsApi } from '@actiontech/shared/lib/api';
import { DataSourceFormContextProvide } from '../../context';
import useCheckConnectable from '../../hooks/useCheckConnectable';
-
const AddDataSource = () => {
const { t } = useTranslation();
-
const navigate = useTypedNavigate();
-
const [form] = useForm();
-
const { onCheckConnectable, loading, connectAble, connectErrorMessage } =
useCheckConnectable(form);
-
const [resultVisible, { setTrue: showResult, setFalse: hideResult }] =
useBoolean();
const [submitLoading, { setTrue: startSubmit, setFalse: submitFinish }] =
useBoolean();
-
const addDatabase = async (values: DataSourceFormField) => {
startSubmit();
const dbService: IDBServiceV2 = {
@@ -95,21 +88,17 @@ const AddDataSource = () => {
submitFinish();
});
};
-
const resetAndHideResult = useCallback(() => {
hideResult();
form.resetFields();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [form]);
-
const onReset = () => {
EventEmitter.emit(EmitterKey.DMS_Reset_DataSource_Form);
};
-
const onSubmit = async () => {
EventEmitter.emit(EmitterKey.DMS_Submit_DataSource_Form);
};
-
return (
{
);
};
-
export default AddDataSource;
diff --git a/packages/base/src/page/DataSource/components/BatchImportDataSource/index.tsx b/packages/base/src/page/DataSource/components/BatchImportDataSource/index.tsx
index 193199004..edc794428 100644
--- a/packages/base/src/page/DataSource/components/BatchImportDataSource/index.tsx
+++ b/packages/base/src/page/DataSource/components/BatchImportDataSource/index.tsx
@@ -2,27 +2,24 @@ import {
BasicButton,
PageHeader,
EmptyBox,
- BasicResult,
- TypedLink
-} from '@actiontech/shared';
+ BasicResult
+} from '@actiontech/dms-kit';
+import { TypedLink } from '@actiontech/shared';
import { useTranslation } from 'react-i18next';
import BatchImportDataSourceForm from '../../../Project/BatchImportDataSource/UploadForm';
import { useCurrentProject } from '@actiontech/shared/lib/features';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import useBatchImportDataSource from '../../../Project/BatchImportDataSource/hooks/useBatchImportDataSource';
import { UploadProps } from 'antd';
import { useCallback } from 'react';
import { LeftArrowOutlined } from '@actiontech/icons';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
import { DmsApi } from '@actiontech/shared/lib/api';
import ConnectableErrorModal from '../../../Project/BatchImportDataSource/ConnectableErrorModal';
import useBatchCheckConnectable from '../../../Project/BatchImportDataSource/hooks/useBatchCheckConnectable';
-
const BatchImportDataSource = () => {
const { t } = useTranslation();
-
const { projectID } = useCurrentProject();
-
const {
importLoading,
setImportPending,
@@ -37,7 +34,6 @@ const BatchImportDataSource = () => {
uploadCheckStatus,
clearUploadCheckStatus
} = useBatchImportDataSource();
-
const {
batchCheckConnectable,
batchCheckConnectableLoading,
@@ -46,7 +42,6 @@ const BatchImportDataSource = () => {
hideConnectErrorModal,
connectableInfo
} = useBatchCheckConnectable();
-
const onSubmit = async () => {
setImportPending();
DmsApi.DBServiceService.ImportDBServicesOfOneProjectV2({
@@ -63,7 +58,6 @@ const BatchImportDataSource = () => {
hideConnectErrorModal();
});
};
-
const onCheckConnectableBeforeSubmit = async () => {
await form.validateFields();
await batchCheckConnectable(dbServices ?? []).then((res) => {
@@ -74,7 +68,6 @@ const BatchImportDataSource = () => {
}
});
};
-
const onUploadCustomRequest = useCallback<
Required['customRequest']
>(
@@ -86,7 +79,9 @@ const BatchImportDataSource = () => {
project_uid: projectID,
db_services_file: option.file
},
- { responseType: 'blob' }
+ {
+ responseType: 'blob'
+ }
)
.then((res) => {
importServicesCheck(res);
@@ -98,14 +93,15 @@ const BatchImportDataSource = () => {
},
[importServicesCheck, projectID, setDBservices, clearUploadCheckStatus]
);
-
return (
<>
}>
{t('dmsDataSource.backDesc')}
@@ -160,5 +156,4 @@ const BatchImportDataSource = () => {
>
);
};
-
export default BatchImportDataSource;
diff --git a/packages/base/src/page/DataSource/components/Form/EnvironmentField/index.tsx b/packages/base/src/page/DataSource/components/Form/EnvironmentField/index.tsx
index a53d8796b..8ae7550a9 100644
--- a/packages/base/src/page/DataSource/components/Form/EnvironmentField/index.tsx
+++ b/packages/base/src/page/DataSource/components/Form/EnvironmentField/index.tsx
@@ -1,36 +1,27 @@
-import {
- EditableSelect,
- EditableSelectProps,
- EditableSelectOption
-} from '@actiontech/shared';
+import { EditableSelect } from '@actiontech/dms-kit';
+import { EditableSelectProps, EditableSelectOption } from '@actiontech/dms-kit';
import { useState } from 'react';
import { useTranslation } from 'react-i18next';
import { DmsApi } from '@actiontech/shared/lib/api';
import { message } from 'antd';
import { useRequest } from 'ahooks';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { IListDBServiceV2 } from '@actiontech/shared/lib/api/base/service/common';
import { useBoolean } from 'ahooks';
-
interface EnvironmentFieldProps extends Omit {
projectID?: string;
}
-
const EnvironmentField: React.FC = ({
projectID,
...props
}) => {
const { t } = useTranslation();
-
const [messageApi, contextHolder] = message.useMessage();
-
const [boundServices, setBoundServices] = useState([]);
-
const [
operationLoading,
{ setTrue: startOperationLoading, setFalse: stopOperationLoading }
] = useBoolean();
-
const {
data: environmentTags,
refresh,
@@ -54,7 +45,6 @@ const EnvironmentField: React.FC = ({
ready: !!projectID
}
);
-
const onAdd = (v: string) => {
startOperationLoading();
DmsApi.ProjectService.CreateEnvironmentTag({
@@ -73,7 +63,6 @@ const EnvironmentField: React.FC = ({
stopOperationLoading();
});
};
-
const deleteEnvironmentTag = (environmentTagUid: string) => {
startOperationLoading();
DmsApi.ProjectService.DeleteEnvironmentTag({
@@ -92,7 +81,6 @@ const EnvironmentField: React.FC = ({
stopOperationLoading();
});
};
-
const onDelete = (item: EditableSelectOption) => {
const environmentTagUid = item.value.toString();
DmsApi.DBServiceService.ListDBServicesV2({
@@ -112,7 +100,6 @@ const EnvironmentField: React.FC = ({
stopOperationLoading();
});
};
-
const onUpdate = (item: EditableSelectOption) => {
startOperationLoading();
DmsApi.ProjectService.UpdateEnvironmentTag({
@@ -132,7 +119,6 @@ const EnvironmentField: React.FC = ({
stopOperationLoading();
});
};
-
return (
<>
{contextHolder}
@@ -163,5 +149,4 @@ const EnvironmentField: React.FC = ({
>
);
};
-
export default EnvironmentField;
diff --git a/packages/base/src/page/DataSource/components/Form/FormItem/index.tsx b/packages/base/src/page/DataSource/components/Form/FormItem/index.tsx
index efcded7e3..9467eaf97 100644
--- a/packages/base/src/page/DataSource/components/Form/FormItem/index.tsx
+++ b/packages/base/src/page/DataSource/components/Form/FormItem/index.tsx
@@ -11,16 +11,12 @@ import {
BasicSwitch,
EmptyBox,
TestDatabaseConnectButton
-} from '@actiontech/shared';
-import {
- FormItemLabel,
- FormItemNoLabel
-} from '@actiontech/shared/lib/components/CustomForm';
-import { validatorPort } from '@actiontech/shared/lib/utils/FormRule';
+} from '@actiontech/dms-kit';
+import { FormItemLabel, FormItemNoLabel } from '@actiontech/dms-kit';
+import { validatorPort } from '@actiontech/dms-kit';
import AutoCreatedFormItemByApi from 'sqle/src/components/BackendForm/AutoCreatedFormItemByApi';
import { FormItem } from 'sqle/src/components/BackendForm';
import { DataSourceFormContext } from '../../../context';
-
const DatabaseFormItem: React.FC<{
form: FormInstance;
isUpdate?: boolean;
@@ -31,26 +27,23 @@ const DatabaseFormItem: React.FC<{
isExternalInstance?: boolean;
}> = (props) => {
const { t } = useTranslation();
-
const formContext = useContext(DataSourceFormContext);
-
const [
hideConnectionInfo,
{ setFalse: setConnectionInfoShow, setTrue: setConnectionInfoHide }
] = useBoolean(true);
-
const [needUpdatePassword, setNeedUpdatePassword] = useState(false);
const changeNeedUpdatePassword = (check: boolean) => {
setNeedUpdatePassword(check);
- props.form.setFieldsValue({ needUpdatePassword: check });
+ props.form.setFieldsValue({
+ needUpdatePassword: check
+ });
};
-
const testDatabaseConnect = async () => {
formContext?.onCheckConnectable(props.currentAsyncParams).finally(() => {
setConnectionInfoShow();
});
};
-
useEffect(() => {
const resetConnectAbleStatus = () => {
setConnectionInfoHide();
@@ -67,7 +60,6 @@ const DatabaseFormItem: React.FC<{
};
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
-
return (
<>
);
};
-
export default DatabaseFormItem;
diff --git a/packages/base/src/page/DataSource/components/Form/MaintenanceTimePicker/MaintenanceTimePicker.tsx b/packages/base/src/page/DataSource/components/Form/MaintenanceTimePicker/MaintenanceTimePicker.tsx
index 2a99d675a..e10f0a95d 100644
--- a/packages/base/src/page/DataSource/components/Form/MaintenanceTimePicker/MaintenanceTimePicker.tsx
+++ b/packages/base/src/page/DataSource/components/Form/MaintenanceTimePicker/MaintenanceTimePicker.tsx
@@ -9,9 +9,8 @@ import {
BasicRangePicker,
BasicTag,
EmptyBox
-} from '@actiontech/shared';
+} from '@actiontech/dms-kit';
import { MaintenanceTimePickerPopoverWrapper } from './style';
-
const MaintenanceTimePicker: React.FC = (props) => {
const { value = [], onChange } = props;
const [messageApi, contextHolder] = message.useMessage();
@@ -19,11 +18,8 @@ const MaintenanceTimePicker: React.FC = (props) => {
popoverVisible,
{ toggle: popoverVisibleChange, setFalse: closePopover }
] = useBoolean();
-
const { t } = useTranslation();
-
const [range, setRange] = useState<[Dayjs | null, Dayjs | null] | null>();
-
const turnMomentToMaintenanceTime = (
startMoment: Dayjs,
endMoment: Dayjs
@@ -39,7 +35,6 @@ const MaintenanceTimePicker: React.FC = (props) => {
}
};
};
-
const add = () => {
if (range && range[0] && range[1]) {
const newRange = turnMomentToMaintenanceTime(range[0], range[1]);
@@ -61,19 +56,15 @@ const MaintenanceTimePicker: React.FC = (props) => {
closePopover();
setRange(null);
};
-
const deleteTime = (index: number) => {
onChange?.([...value.slice(0, index), ...value.slice(index + 1)]);
};
-
const addZero = (num: number) => {
return num < 10 ? `0${num}` : num;
};
-
const generateKey = (time: MaintenanceTimeValue) => {
return `${time.startTime.hour}${time.startTime.minute}${time.endTime.hour}${time.endTime.minute}`;
};
-
return (
{contextHolder}
@@ -130,5 +121,4 @@ const MaintenanceTimePicker: React.FC = (props) => {
);
};
-
export default MaintenanceTimePicker;
diff --git a/packages/base/src/page/DataSource/components/Form/SqlAuditFields/ConfirmSwitch.tsx b/packages/base/src/page/DataSource/components/Form/SqlAuditFields/ConfirmSwitch.tsx
index 5be69f79e..2bf672bd0 100644
--- a/packages/base/src/page/DataSource/components/Form/SqlAuditFields/ConfirmSwitch.tsx
+++ b/packages/base/src/page/DataSource/components/Form/SqlAuditFields/ConfirmSwitch.tsx
@@ -1,42 +1,35 @@
-import { BasicSwitch } from '@actiontech/shared';
+import { BasicSwitch } from '@actiontech/dms-kit';
import { Popconfirm } from 'antd';
import { useTranslation } from 'react-i18next';
import { useState } from 'react';
-
type ConfirmSwitchProps = {
checked?: boolean;
onChange?: (value: boolean) => void;
onConfirm?: () => void;
};
-
const ConfirmSwitch: React.FC = ({
checked,
onChange,
onConfirm
}) => {
const { t } = useTranslation();
-
const [auditRequiredPopupVisible, setAuditRequiredPopupVisible] =
useState(false);
-
const onOpenChange = (open: boolean) => {
if (!checked) {
return;
}
setAuditRequiredPopupVisible(open);
};
-
const onSwitchChange = (value: boolean) => {
if (value) {
onChange?.(value);
}
};
-
const onInnerConfirm = () => {
onChange?.(false);
onConfirm?.();
};
-
return (
= ({
);
};
-
export default ConfirmSwitch;
diff --git a/packages/base/src/page/DataSource/components/Form/SqlAuditFields/index.tsx b/packages/base/src/page/DataSource/components/Form/SqlAuditFields/index.tsx
index f5dd27604..825fc3f7e 100644
--- a/packages/base/src/page/DataSource/components/Form/SqlAuditFields/index.tsx
+++ b/packages/base/src/page/DataSource/components/Form/SqlAuditFields/index.tsx
@@ -5,19 +5,18 @@ import {
BasicSelect,
BasicSwitch,
EmptyBox
-} from '@actiontech/shared';
-import { FormAreaBlockStyleWrapper } from '@actiontech/shared/lib/components/CustomForm/style';
+} from '@actiontech/dms-kit';
+import { FormAreaBlockStyleWrapper } from '@actiontech/dms-kit/es/components/CustomForm/style';
import {
FormItemLabel,
FormItemSubTitle,
CustomLabelContent
-} from '@actiontech/shared/lib/components/CustomForm';
+} from '@actiontech/dms-kit';
import Select, { SelectProps, BaseOptionType } from 'antd/es/select';
import { SQLQueryConfigAllowQueryWhenLessThanAuditLevelEnum } from '@actiontech/shared/lib/api/base/service/common.enum';
import { FaLessThanEqualOutlined } from '@actiontech/icons';
import ConfirmSwitch from './ConfirmSwitch';
import { SqlAuditFieldsSubTitleWrapper } from '../style';
-
type SqlAuditFieldsValue = {
needSqlAuditService: boolean;
ruleTemplateId: string;
@@ -29,26 +28,20 @@ type SqlAuditFieldsValue = {
workbenchTemplateName: string;
allowQueryWhenLessThanAuditLevel: string;
};
-
type SqlAuditFieldsProps = {
getTemplateOptionsLoading: boolean;
ruleTemplateOptions: SelectProps['options'];
onNeedAuditForSqlQueryChange: (value: boolean) => void;
};
-
const SqlAuditFields: React.FC = ({
getTemplateOptionsLoading,
ruleTemplateOptions,
onNeedAuditForSqlQueryChange
}) => {
const { t } = useTranslation();
-
const form = Form.useFormInstance();
-
const needSqlAuditService = Form.useWatch('needSqlAuditService');
-
const needAuditForSqlQuery = Form.useWatch('needAuditForSqlQuery');
-
const changeRuleTemplate = (
value: string,
option: BaseOptionType,
@@ -58,7 +51,6 @@ const SqlAuditFields: React.FC = ({
[key]: option.key
});
};
-
return (
@@ -244,5 +236,4 @@ const SqlAuditFields: React.FC = ({
);
};
-
export default SqlAuditFields;
diff --git a/packages/base/src/page/DataSource/components/Form/index.tsx b/packages/base/src/page/DataSource/components/Form/index.tsx
index 6fc69f787..c1c4928ef 100644
--- a/packages/base/src/page/DataSource/components/Form/index.tsx
+++ b/packages/base/src/page/DataSource/components/Form/index.tsx
@@ -14,17 +14,17 @@ import {
BasicSelect,
BasicSwitch,
EmptyBox,
- TypedLink,
BasicModal,
BasicButton,
ReminderInformation
-} from '@actiontech/shared';
+} from '@actiontech/dms-kit';
+import { TypedLink } from '@actiontech/shared';
import {
FormAreaBlockStyleWrapper,
FormAreaLineStyleWrapper,
FormStyleWrapper,
formItemLayout
-} from '@actiontech/shared/lib/components/CustomForm/style';
+} from '@actiontech/dms-kit/es/components/CustomForm/style';
import {
FormInputBotBorder,
FormItemBigTitle,
@@ -32,8 +32,8 @@ import {
FormItemNoLabel,
FormItemSubTitle,
CustomLabelContent
-} from '@actiontech/shared/lib/components/CustomForm';
-import { nameRule } from '@actiontech/shared/lib/utils/FormRule';
+} from '@actiontech/dms-kit';
+import { nameRule } from '@actiontech/dms-kit';
import DatabaseFormItem from './FormItem';
import MaintenanceTimePicker from './MaintenanceTimePicker';
import { turnDataSourceAsyncFormToCommon } from '../../tool';
@@ -45,19 +45,18 @@ import classNames from 'classnames';
import { DatabaseFilled } from '@actiontech/icons';
import Icon from '@ant-design/icons';
import useProjectTips from '../../../../hooks/useProjectTips';
-import { SQLE_INSTANCE_SOURCE_NAME } from '@actiontech/shared/lib/data/common';
+import { SQLE_INSTANCE_SOURCE_NAME } from '@actiontech/dms-kit';
import system from '@actiontech/shared/lib/api/sqle/service/system';
import {
getSystemModuleStatusDbTypeEnum,
getSystemModuleStatusModuleNameEnum
} from '@actiontech/shared/lib/api/sqle/service/system/index.enum';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import EnvironmentField from './EnvironmentField';
import { DataSourceFormContext } from '../../context';
import { useBoolean } from 'ahooks';
import { FormCheckConnectableInfoModalWrapper } from './style';
import SqlAuditFields from './SqlAuditFields';
-
const DataSourceForm: React.FC = (props) => {
const { t } = useTranslation();
const isExternalInstance = useMemo(() => {
@@ -66,31 +65,22 @@ const DataSourceForm: React.FC = (props) => {
}
return props.defaultData.source !== SQLE_INSTANCE_SOURCE_NAME;
}, [props.defaultData]);
-
const formContext = useContext(DataSourceFormContext);
-
const [databaseType, setDatabaseType] = useState('');
const [currentDBTypeSupportBackup, setCurrentDBTypeSupportBackup] =
useState(false);
-
const [modalOpen, { setTrue: openModal, setFalse: closeModal }] =
useBoolean(false);
-
const {
driverMeta,
loading: updateDriverListLoading,
updateDriverList,
generateDriverSelectOptions
} = useDbServiceDriver();
-
const { updateProjects, projectIDOptions } = useProjectTips();
-
const { projectID } = useCurrentProject();
-
const project = Form.useWatch('project', props.form);
-
const enableBackup = Form.useWatch('enableBackup', props.form);
-
const getBackupSupportStatus = useCallback((value: string) => {
system
.getSystemModuleStatus({
@@ -103,7 +93,6 @@ const DataSourceForm: React.FC = (props) => {
}
});
}, []);
-
const databaseTypeChange = useCallback(
(value: string) => {
setDatabaseType(value);
@@ -148,7 +137,6 @@ const DataSourceForm: React.FC = (props) => {
} = useRequest(() =>
rule_template.getRuleTemplateTipsV1({}).then((res) => res.data.data ?? [])
);
-
const ruleTemplateOptions = useMemo(() => {
return [...ruleTemplateList, ...globalRuleTemplateList]
.filter((v) => (databaseType ? v.db_type === databaseType : true))
@@ -160,7 +148,6 @@ const DataSourceForm: React.FC = (props) => {
};
});
}, [ruleTemplateList, globalRuleTemplateList, databaseType]);
-
const changeAuditEnabled = (check: boolean) => {
if (!check) {
props.form.setFieldsValue({
@@ -182,15 +169,12 @@ const DataSourceForm: React.FC = (props) => {
if (!driverMeta || !databaseType) {
return [];
}
-
const temp = driverMeta.find((item) => item.db_type === databaseType);
if (!temp) {
return [];
}
-
return turnDataSourceAsyncFormToCommon(temp.params ?? []);
}, [databaseType, driverMeta]);
-
useEffect(() => {
if (!!props.defaultData) {
props.form.setFieldsValue({
@@ -268,12 +252,14 @@ const DataSourceForm: React.FC = (props) => {
props.form.resetFields();
setDatabaseType('');
}, [props.form]);
-
const submit = useCallback(async () => {
const values = props.form.getFieldsValue();
if (values.params) {
values.asyncParams = mergeFromValueIntoParams(values.params, params).map(
- (v) => ({ name: v.key, value: v.value })
+ (v) => ({
+ name: v.key,
+ value: v.value
+ })
);
delete values.params;
}
@@ -281,7 +267,6 @@ const DataSourceForm: React.FC = (props) => {
closeModal();
});
}, [mergeFromValueIntoParams, params, props, closeModal]);
-
useEffect(() => {
const { unsubscribe: unsubscribeReset } = EventEmitter.subscribe(
EmitterKey.DMS_Reset_DataSource_Form,
@@ -289,7 +274,6 @@ const DataSourceForm: React.FC = (props) => {
);
return unsubscribeReset;
}, [reset]);
-
const onCheckConnectableBeforeSubmit = useCallback(async () => {
const values = await props.form.validateFields();
if (props.isUpdate && !values.needUpdatePassword) {
@@ -304,7 +288,6 @@ const DataSourceForm: React.FC = (props) => {
}
});
}, [formContext, submit, openModal, props, params]);
-
useEffect(() => {
const { unsubscribe: unsubscribeSubmit } = EventEmitter.subscribe(
EmitterKey.DMS_Submit_DataSource_Form,
@@ -312,19 +295,16 @@ const DataSourceForm: React.FC = (props) => {
);
return unsubscribeSubmit;
}, [onCheckConnectableBeforeSubmit]);
-
useEffect(() => {
updateDriverList();
updateProjects();
}, [updateDriverList, updateProjects]);
-
useEffect(() => {
if (projectID) {
props.form.setFieldValue('project', projectID);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [projectID]);
-
const hasBorder = () => {
let border = false;
// #if [dms]
@@ -332,7 +312,6 @@ const DataSourceForm: React.FC = (props) => {
// #endif
return border;
};
-
return (
}
@@ -363,8 +342,12 @@ const DataSourceForm: React.FC = (props) => {
},
...nameRule()
]}
- labelCol={{ span: 0 }}
- wrapperCol={{ span: 24 }}
+ labelCol={{
+ span: 0
+ }}
+ wrapperCol={{
+ span: 24
+ }}
>
= (props) => {
@@ -409,7 +396,11 @@ const DataSourceForm: React.FC = (props) => {
className="has-required-style"
label={t('dmsDataSource.dataSourceForm.environmentAttribute')}
name="environmentTagId"
- rules={[{ required: true }]}
+ rules={[
+ {
+ required: true
+ }
+ ]}
>
@@ -431,7 +422,9 @@ const DataSourceForm: React.FC = (props) => {
{/* #if [sqle] */}
= (props) => {
}
name="is_enable_masking"
valuePropName="checked"
- labelCol={{ span: 12 }}
- wrapperCol={{ span: 11, push: 1 }}
+ labelCol={{
+ span: 12
+ }}
+ wrapperCol={{
+ span: 11,
+ push: 1
+ }}
>
@@ -569,5 +567,4 @@ const DataSourceForm: React.FC = (props) => {
);
};
-
export default DataSourceForm;
diff --git a/packages/base/src/page/DataSource/components/List/ConnectionResultColumn.tsx b/packages/base/src/page/DataSource/components/List/ConnectionResultColumn.tsx
index b5702a839..be551c036 100644
--- a/packages/base/src/page/DataSource/components/List/ConnectionResultColumn.tsx
+++ b/packages/base/src/page/DataSource/components/List/ConnectionResultColumn.tsx
@@ -1,22 +1,19 @@
import { useTranslation } from 'react-i18next';
-import { BasicTag, BasicToolTip } from '@actiontech/shared';
-import { formatTime } from '@actiontech/shared/lib/utils/Common';
+import { BasicTag, BasicToolTip } from '@actiontech/dms-kit';
+import { formatTime } from '@actiontech/dms-kit';
import { Space, Typography } from 'antd';
import { ListDBServiceV2LastConnectionTestStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum';
-
type Props = {
connectionStatus?: ListDBServiceV2LastConnectionTestStatusEnum;
connectionTestTime?: string;
connectionErrorMessage?: string;
};
-
const ConnectionStatusColumn: React.FC = ({
connectionStatus,
connectionTestTime,
connectionErrorMessage
}) => {
const { t } = useTranslation();
-
if (
connectionStatus ===
ListDBServiceV2LastConnectionTestStatusEnum.connect_success
@@ -31,13 +28,18 @@ const ConnectionStatusColumn: React.FC = ({
}
>
-
+
{t('dmsDataSource.databaseList.connectSucceed')}
);
}
-
if (
connectionStatus ===
ListDBServiceV2LastConnectionTestStatusEnum.connect_failed
@@ -61,14 +63,18 @@ const ConnectionStatusColumn: React.FC = ({
}
>
-
+
{t('dmsDataSource.databaseList.connectFailed')}
);
}
-
return <>->;
};
-
export default ConnectionStatusColumn;
diff --git a/packages/base/src/page/DataSource/components/List/actions.tsx b/packages/base/src/page/DataSource/components/List/actions.tsx
index 44297185f..bc2bd6af2 100644
--- a/packages/base/src/page/DataSource/components/List/actions.tsx
+++ b/packages/base/src/page/DataSource/components/List/actions.tsx
@@ -8,8 +8,7 @@ import { t } from '../../../../locale';
import { PlusOutlined } from '@actiontech/icons';
import { ActionButton } from '@actiontech/shared';
import { ReactNode } from 'react';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
-
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
export const DataSourceListActions = (
onNavigateUpdateDataSource: (uid: string) => void,
onDeleteDataSource: (uid: string, name: string) => void,
@@ -33,7 +32,9 @@ export const DataSourceListActions = (
{
key: 'delete-db-service',
text: t('common.delete'),
- buttonProps: () => ({ danger: true }),
+ buttonProps: () => ({
+ danger: true
+ }),
confirm: (record) => ({
title: t('dmsDataSource.deleteDatabase.confirmMessage', {
name: record?.name
@@ -84,7 +85,6 @@ export const DataSourceListActions = (
]
};
};
-
export const DataSourcePageHeaderActions = (
projectID: string,
batchTestDatabaseConnection: () => void,
@@ -115,7 +115,9 @@ export const DataSourcePageHeaderActions = (
actionType="navigate-link"
link={{
to: ROUTE_PATHS.BASE.DATA_SOURCE.batch_import,
- params: { projectID }
+ params: {
+ projectID
+ }
}}
/>
@@ -136,7 +138,9 @@ export const DataSourcePageHeaderActions = (
actionType="navigate-link"
link={{
to: ROUTE_PATHS.BASE.DATA_SOURCE.create,
- params: { projectID }
+ params: {
+ projectID
+ }
}}
/>
diff --git a/packages/base/src/page/DataSource/components/List/columns.tsx b/packages/base/src/page/DataSource/components/List/columns.tsx
index 407603fe4..a8479b216 100644
--- a/packages/base/src/page/DataSource/components/List/columns.tsx
+++ b/packages/base/src/page/DataSource/components/List/columns.tsx
@@ -1,10 +1,11 @@
-import { timeAddZero } from '@actiontech/shared/lib/utils/Common';
+import { timeAddZero } from '@actiontech/dms-kit';
import { Tag } from 'antd';
import { t } from '../../../../locale';
import { IListDBServiceV2 } from '@actiontech/shared/lib/api/base/service/common';
-import { ActiontechTableColumn } from '@actiontech/shared/lib/components/ActiontechTable';
+import { ActiontechTableColumn } from '@actiontech/dms-kit/es/components/ActiontechTable';
import { IListDBServicesV2Params } from '@actiontech/shared/lib/api/base/service/DBService/index.d';
-import { BasicTypographyEllipsis, DatabaseTypeLogo } from '@actiontech/shared';
+import { DatabaseTypeLogo } from '@actiontech/dms-kit';
+import { BasicTypographyEllipsis } from '@actiontech/shared';
import ScanTypeTagsCell from 'sqle/src/page/SqlManagementConf/List/ScanTypeTagsCell';
import ConnectionResultColumn from './ConnectionResultColumn';
import { ServiceEnvironmentTagStyleWrapper } from './style';
@@ -18,7 +19,6 @@ export type DataSourceListParamType = Omit<
IListDBServicesV2Params,
'page_index' | 'page_size' | 'project_uid'
>;
-
export const DataSourceColumns = (
getLogoUrlByDbType: (dbType: string) => string
): ActiontechTableColumn<
@@ -80,7 +80,6 @@ export const DataSourceColumns = (
filterKey: 'filter_by_db_type',
render: (dbType) => {
if (!dbType) return '-';
-
return (
{
const { t } = useTranslation();
-
const navigate = useTypedNavigate();
const extractQuery = useTypedQuery();
const [modalApi, modalContextHolder] = Modal.useModal();
const [messageApi, messageContextHolder] = message.useMessage();
const { parse2TableActionPermissions } = usePermission();
const { projectID } = useCurrentProject();
-
const [
batchTestDatabaseConnectionPending,
{ setFalse: finishTestConnection, setTrue: startTestConnection }
] = useBoolean();
-
const {
dbDriverOptions,
getLogoUrlByDbType,
@@ -67,15 +60,12 @@ const DataSourceList = () => {
loading: getDbServiceOptionsLoading,
updateDbServiceList
} = useDbService();
-
const {
environmentOptions,
loading: getEnvironmentListLoading,
updateEnvironmentList
} = useServiceEnvironment();
-
const { generateDatabaseTestConnectionStatusSelectOptions } = useStaticTips();
-
const {
tableFilterInfo,
updateTableFilterInfo,
@@ -90,7 +80,6 @@ const DataSourceList = () => {
});
const { requestErrorMessage, handleTableRequestError } =
useTableRequestError();
-
const createEnableMaskingParams = (
params: DataSourceListParamType,
enableMasking: DataMaskingFilterTypeEnum
@@ -99,7 +88,6 @@ const DataSourceList = () => {
params.is_enable_masking =
enableMasking === DataMaskingFilterTypeEnum.checked;
};
-
const {
data: dataSourceList,
loading,
@@ -125,32 +113,40 @@ const DataSourceList = () => {
ready: !!projectID
}
);
-
const navigateToUpdatePage = useCallback(
(dbServiceUid: string) => {
navigate(ROUTE_PATHS.BASE.DATA_SOURCE.update, {
- params: { projectID, dbServiceUid }
+ params: {
+ projectID,
+ dbServiceUid
+ }
});
},
[navigate, projectID]
);
-
const navigateToSqlManagementConf = useCallback(
(uid: string, environment: string, instanceAuditPlanId?: string) => {
if (instanceAuditPlanId) {
navigate(ROUTE_PATHS.SQLE.SQL_MANAGEMENT_CONF.update, {
- params: { projectID, id: instanceAuditPlanId }
+ params: {
+ projectID,
+ id: instanceAuditPlanId
+ }
});
} else {
navigate(ROUTE_PATHS.SQLE.SQL_MANAGEMENT_CONF.create, {
- params: { projectID },
- queries: { instance_id: uid, environment_tag: environment }
+ params: {
+ projectID
+ },
+ queries: {
+ instance_id: uid,
+ environment_tag: environment
+ }
});
}
},
[navigate, projectID]
);
-
const deleteDatabase = useCallback(
(dbServiceUid: string, dvServiceName: string) => {
const hideLoading = messageApi.loading(
@@ -179,7 +175,6 @@ const DataSourceList = () => {
},
[messageApi, refresh, t, projectID]
);
-
const testDatabaseConnection = useCallback(
(dbServiceUid: string, dbServiceName: string) => {
const hide = messageApi.loading(
@@ -222,7 +217,6 @@ const DataSourceList = () => {
},
[messageApi, modalApi, projectID, refresh, t]
);
-
const batchTestDatabaseConnection = () => {
if (!dataSourceList?.list || dataSourceList.list.length === 0) {
messageApi.error(t('dmsDataSource.batchTestConnection.notFoundData'));
@@ -250,35 +244,48 @@ const DataSourceList = () => {
finishTestConnection();
});
};
-
const columns = useMemo(
() => DataSourceColumns(getLogoUrlByDbType),
[getLogoUrlByDbType]
);
-
const { filterButtonMeta, filterContainerMeta, updateAllSelectedFilterItem } =
useTableFilterContainer(columns, updateTableFilterInfo);
-
const filterCustomProps = useMemo(() => {
return new Map([
[
'name',
- { options: dbServiceOptions, loading: getDbServiceOptionsLoading }
+ {
+ options: dbServiceOptions,
+ loading: getDbServiceOptionsLoading
+ }
],
[
'db_type',
- { options: dbDriverOptions, loading: getDriveOptionsLoading }
+ {
+ options: dbDriverOptions,
+ loading: getDriveOptionsLoading
+ }
],
[
'last_connection_test_status',
- { options: generateDatabaseTestConnectionStatusSelectOptions }
+ {
+ options: generateDatabaseTestConnectionStatusSelectOptions
+ }
],
[
'environment_tag',
- { options: environmentOptions, loading: getEnvironmentListLoading }
+ {
+ options: environmentOptions,
+ loading: getEnvironmentListLoading
+ }
],
// #if [dms]
- ['is_enable_masking', { options: filterDataMaskOptions }]
+ [
+ 'is_enable_masking',
+ {
+ options: filterDataMaskOptions
+ }
+ ]
// #endif
]);
}, [
@@ -290,7 +297,6 @@ const DataSourceList = () => {
environmentOptions,
getEnvironmentListLoading
]);
-
const tableActions = useMemo(() => {
return parse2TableActionPermissions(
DataSourceListActions(
@@ -312,16 +318,16 @@ const DataSourceList = () => {
batchTestDatabaseConnection,
batchTestDatabaseConnectionPending
);
-
useEffect(() => {
if (projectID) {
updateDriverList();
- updateDbServiceList({ project_uid: projectID });
+ updateDbServiceList({
+ project_uid: projectID
+ });
updateEnvironmentList(projectID);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [projectID]);
-
return (
<>
{modalContextHolder}
@@ -339,7 +345,10 @@ const DataSourceList = () => {
}
/>
{
>
);
};
-
export default DataSourceList;
diff --git a/packages/base/src/page/DataSource/components/List/style.ts b/packages/base/src/page/DataSource/components/List/style.ts
index 0a342ca30..af7b6a241 100644
--- a/packages/base/src/page/DataSource/components/List/style.ts
+++ b/packages/base/src/page/DataSource/components/List/style.ts
@@ -1,6 +1,5 @@
import { styled } from '@mui/material/styles';
-import { BasicTag } from '@actiontech/shared';
-
+import { BasicTag } from '@actiontech/dms-kit';
/**
* todo Basic宽度默认占据一行 使用时不太方便 后续对BasicTag的样式进行调整
*/
diff --git a/packages/base/src/page/DataSource/components/UpdateDataSource/index.tsx b/packages/base/src/page/DataSource/components/UpdateDataSource/index.tsx
index b622b5a4e..73b440453 100644
--- a/packages/base/src/page/DataSource/components/UpdateDataSource/index.tsx
+++ b/packages/base/src/page/DataSource/components/UpdateDataSource/index.tsx
@@ -2,17 +2,12 @@ import { useTranslation } from 'react-i18next';
import { useBoolean } from 'ahooks';
import { useCallback, useEffect, useState } from 'react';
import { Button, message, Empty, Typography, Spin } from 'antd';
-import {
- BasicButton,
- EmptyBox,
- PageHeader,
- useTypedNavigate,
- useTypedParams
-} from '@actiontech/shared';
-import { PageLayoutHasFixedHeaderStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element';
+import { BasicButton, EmptyBox, PageHeader } from '@actiontech/dms-kit';
+import { useTypedNavigate, useTypedParams } from '@actiontech/shared';
+import { PageLayoutHasFixedHeaderStyleWrapper } from '@actiontech/dms-kit';
import DataSourceForm from '../Form';
import { useForm } from 'antd/es/form/Form';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { useCurrentProject } from '@actiontech/shared/lib/features';
import EmitterKey from '../../../../data/EmitterKey';
import EventEmitter from '../../../../utils/EventEmitter';
@@ -20,34 +15,27 @@ import { DataSourceFormField } from '../Form/index.type';
import { IListDBServiceV2 } from '@actiontech/shared/lib/api/base/service/common';
import { IUpdateDBServiceV2Params } from '@actiontech/shared/lib/api/base/service/DBService/index.d';
import { LeftArrowOutlined } from '@actiontech/icons';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
import { DmsApi } from '@actiontech/shared/lib/api';
import { DataSourceFormContextProvide } from '../../context';
import useCheckConnectable from '../../hooks/useCheckConnectable';
-
const UpdateDataSource = () => {
const { t } = useTranslation();
-
const navigate = useTypedNavigate();
const [messageApi, messageContextHolder] = message.useMessage();
-
const { projectID } = useCurrentProject();
-
const [initError, setInitError] = useState('');
const [form] = useForm();
const urlParams =
useTypedParams();
-
const { onCheckConnectable, loading, connectAble, connectErrorMessage } =
useCheckConnectable(form);
-
const [retryLoading, setRetryLoading] = useState(false);
const [submitLoading, { setTrue: startSubmit, setFalse: submitFinish }] =
useBoolean();
const [instanceInfo, setInstanceInfo] = useState<
IListDBServiceV2 | undefined
>();
-
const updateDatabase = async (values: DataSourceFormField) => {
startSubmit();
const params: IUpdateDBServiceV2Params = {
@@ -102,7 +90,6 @@ const UpdateDataSource = () => {
if (!!values.needUpdatePassword && !!values.password && params.db_service) {
params.db_service.password = values.password;
}
-
return DmsApi.DBServiceService.UpdateDBServiceV2(params)
.then((res) => {
if (res.data.code === ResponseCode.SUCCESS) {
@@ -121,11 +108,9 @@ const UpdateDataSource = () => {
submitFinish();
});
};
-
const onSubmitForm = async () => {
EventEmitter.emit(EmitterKey.DMS_Submit_DataSource_Form);
};
-
const getInstanceInfo = useCallback(() => {
setRetryLoading(true);
DmsApi.DBServiceService.ListDBServicesV2({
@@ -137,7 +122,10 @@ const UpdateDataSource = () => {
.then((res) => {
if (res.data.code === ResponseCode.SUCCESS) {
const instance = res.data.data?.[0];
- setInstanceInfo({ ...instance, password: '' });
+ setInstanceInfo({
+ ...instance,
+ password: ''
+ });
setInitError('');
} else {
setInitError(res.data.message ?? t('common.unknownError'));
@@ -147,13 +135,11 @@ const UpdateDataSource = () => {
setRetryLoading(false);
});
}, [projectID, t, urlParams.dbServiceUid]);
-
useEffect(() => {
if (!!urlParams.dbServiceUid && !!projectID) {
getInstanceInfo();
}
}, [getInstanceInfo, projectID, urlParams.dbServiceUid]);
-
return (
{messageContextHolder}
@@ -221,5 +207,4 @@ const UpdateDataSource = () => {
);
};
-
export default UpdateDataSource;
diff --git a/packages/base/src/page/DataSource/hooks/useCheckConnectable.ts b/packages/base/src/page/DataSource/hooks/useCheckConnectable.ts
index b1dce46b6..f1e17875f 100644
--- a/packages/base/src/page/DataSource/hooks/useCheckConnectable.ts
+++ b/packages/base/src/page/DataSource/hooks/useCheckConnectable.ts
@@ -4,7 +4,7 @@ import { DataSourceFormField } from '../components/Form/index.type';
import { FormItem } from 'sqle/src/components/BackendForm';
import { useBoolean } from 'ahooks';
import { DmsApi } from '@actiontech/shared/lib/api/';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import useAsyncParams from 'sqle/src/components/BackendForm/useAsyncParams';
import {
getDBServiceConnectableErrorMessage,
diff --git a/packages/base/src/page/DataSourceManagement/action.tsx b/packages/base/src/page/DataSourceManagement/action.tsx
index b6860d262..809d4e609 100644
--- a/packages/base/src/page/DataSourceManagement/action.tsx
+++ b/packages/base/src/page/DataSourceManagement/action.tsx
@@ -7,8 +7,7 @@ import {
import { ReactNode } from 'react';
import { DataSourceManagerSegmentedKey } from './index.type';
import { t } from '../../locale';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
-
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
export const DataSourceManagementPageHeaderActions = (
activeKey: DataSourceManagerSegmentedKey,
onBatchTestConnection: () => void
@@ -30,7 +29,9 @@ export const DataSourceManagementPageHeaderActions = (
icon={}
hidden={activeKey !== DataSourceManagerSegmentedKey.SyncDataSource}
actionType="navigate-link"
- link={{ to: ROUTE_PATHS.BASE.SYNC_DATA_SOURCE.create }}
+ link={{
+ to: ROUTE_PATHS.BASE.SYNC_DATA_SOURCE.create
+ }}
/>
),
@@ -42,7 +43,9 @@ export const DataSourceManagementPageHeaderActions = (
text={t('dmsGlobalDataSource.batchImportDataSource.buttonText')}
hidden={activeKey !== DataSourceManagerSegmentedKey.GlobalDataSource}
actionType="navigate-link"
- link={{ to: ROUTE_PATHS.BASE.GLOBAL_DATA_SOURCE.batch_import }}
+ link={{
+ to: ROUTE_PATHS.BASE.GLOBAL_DATA_SOURCE.batch_import
+ }}
/>
),
@@ -56,7 +59,9 @@ export const DataSourceManagementPageHeaderActions = (
icon={}
hidden={activeKey !== DataSourceManagerSegmentedKey.GlobalDataSource}
actionType="navigate-link"
- link={{ to: ROUTE_PATHS.BASE.GLOBAL_DATA_SOURCE.create }}
+ link={{
+ to: ROUTE_PATHS.BASE.GLOBAL_DATA_SOURCE.create
+ }}
/>
),
diff --git a/packages/base/src/page/DataSourceManagement/index.tsx b/packages/base/src/page/DataSourceManagement/index.tsx
index 798237fd6..e5a0ed4b5 100644
--- a/packages/base/src/page/DataSourceManagement/index.tsx
+++ b/packages/base/src/page/DataSourceManagement/index.tsx
@@ -2,14 +2,13 @@ import { useTranslation } from 'react-i18next';
import {
PageHeader,
SegmentedTabs,
- SegmentedTabsProps,
- useTypedNavigate,
- useTypedQuery
-} from '@actiontech/shared';
+ SegmentedTabsProps
+} from '@actiontech/dms-kit';
+import { useTypedNavigate, useTypedQuery } from '@actiontech/shared';
import { DataSourceManagerSegmentedKey } from './index.type';
import { useEffect, useMemo, useState } from 'react';
import { Space } from 'antd';
-import { TableRefreshButton } from '@actiontech/shared/lib/components/ActiontechTable';
+import { TableRefreshButton } from '@actiontech/dms-kit/es/components/ActiontechTable';
import eventEmitter from '../../utils/EventEmitter';
import EmitterKey from '../../data/EmitterKey';
import GlobalDataSource from '../GlobalDataSource';
@@ -20,19 +19,15 @@ import {
usePermission
} from '@actiontech/shared/lib/features';
import { DataSourceManagementPageHeaderActions } from './action';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
-
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
const DataSourceManagement: React.FC = () => {
const { t } = useTranslation();
const [activeKey, setActiveKey] = useState(
DataSourceManagerSegmentedKey.GlobalDataSource
);
-
const { checkPagePermission } = usePermission();
-
const extractQuery = useTypedQuery();
const navigate = useTypedNavigate();
-
const onRefresh = () => {
if (activeKey === DataSourceManagerSegmentedKey.GlobalDataSource) {
eventEmitter.emit(EmitterKey.DMS_Refresh_Global_Data_Source);
@@ -40,10 +35,11 @@ const DataSourceManagement: React.FC = () => {
eventEmitter.emit(EmitterKey.DMS_Refresh_Sync_Data_Source);
}
};
-
const tabItems = useMemo(() => {
const items: Array<
- SegmentedTabsProps['items'][0] & { permission: PermissionsConstantType }
+ SegmentedTabsProps['items'][0] & {
+ permission: PermissionsConstantType;
+ }
> = [
{
label: t('dmsGlobalDataSource.pageTitle'),
@@ -60,7 +56,6 @@ const DataSourceManagement: React.FC = () => {
permission: PERMISSIONS.PAGES.BASE.SYNC_DATA_SOURCE
}
];
-
return items.filter((item) => checkPagePermission(item.permission));
}, [checkPagePermission, t]);
@@ -94,7 +89,6 @@ const DataSourceManagement: React.FC = () => {
setActiveKey(searchParams.active as DataSourceManagerSegmentedKey);
}
}, [extractQuery]);
-
return (
{
onChange={(key) => {
setActiveKey(key);
navigate(ROUTE_PATHS.BASE.DATA_SOURCE_MANAGEMENT.index, {
- queries: { active: key },
+ queries: {
+ active: key
+ },
replace: true
});
}}
@@ -125,5 +121,4 @@ const DataSourceManagement: React.FC = () => {
);
};
-
export default DataSourceManagement;
diff --git a/packages/base/src/page/ErrorBoundary/index.tsx b/packages/base/src/page/ErrorBoundary/index.tsx
index 8df22889d..d0c813ed8 100644
--- a/packages/base/src/page/ErrorBoundary/index.tsx
+++ b/packages/base/src/page/ErrorBoundary/index.tsx
@@ -1,8 +1,9 @@
import { ErrorBoundary as ReactErrorBoundary } from 'react-error-boundary';
-import { BasicResult, BasicButton, useTypedNavigate } from '@actiontech/shared';
+import { BasicResult, BasicButton } from '@actiontech/dms-kit';
+import { useTypedNavigate } from '@actiontech/shared';
import { useTranslation } from 'react-i18next';
import { Space } from 'antd';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
const ErrorBoundary: React.FC<{ children: React.ReactNode }> = ({
children
diff --git a/packages/base/src/page/GlobalDataSource/BatchImportDataSource/index.tsx b/packages/base/src/page/GlobalDataSource/BatchImportDataSource/index.tsx
index bbb0c43cf..93055fcfc 100644
--- a/packages/base/src/page/GlobalDataSource/BatchImportDataSource/index.tsx
+++ b/packages/base/src/page/GlobalDataSource/BatchImportDataSource/index.tsx
@@ -2,12 +2,12 @@ import {
BasicButton,
PageHeader,
EmptyBox,
- BasicResult,
- BackButton
-} from '@actiontech/shared';
+ BasicResult
+} from '@actiontech/dms-kit';
+import { BackButton } from '@actiontech/shared';
import { useTranslation } from 'react-i18next';
import BatchImportDataSourceForm from '../../Project/BatchImportDataSource/UploadForm';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import useBatchImportDataSource from '../../Project/BatchImportDataSource/hooks/useBatchImportDataSource';
import { UploadProps } from 'antd';
import { useCallback } from 'react';
@@ -15,10 +15,8 @@ import { LeftArrowOutlined } from '@actiontech/icons';
import { DmsApi } from '@actiontech/shared/lib/api';
import ConnectableErrorModal from '../../Project/BatchImportDataSource/ConnectableErrorModal';
import useBatchCheckConnectable from '../../Project/BatchImportDataSource/hooks/useBatchCheckConnectable';
-
const GlobalBatchImportDataSource = () => {
const { t } = useTranslation();
-
const {
importLoading,
setImportPending,
@@ -33,7 +31,6 @@ const GlobalBatchImportDataSource = () => {
uploadCheckStatus,
clearUploadCheckStatus
} = useBatchImportDataSource();
-
const {
batchCheckConnectable,
batchCheckConnectableLoading,
@@ -42,7 +39,6 @@ const GlobalBatchImportDataSource = () => {
hideConnectErrorModal,
connectableInfo
} = useBatchCheckConnectable();
-
const onSubmit = async () => {
setImportPending();
DmsApi.ProjectService.ImportDBServicesOfProjectsV2({
@@ -58,7 +54,6 @@ const GlobalBatchImportDataSource = () => {
hideConnectErrorModal();
});
};
-
const onCheckConnectableBeforeSubmit = async () => {
await form.validateFields();
await batchCheckConnectable(dbServices ?? []).then((res) => {
@@ -69,7 +64,6 @@ const GlobalBatchImportDataSource = () => {
}
});
};
-
const onUploadCustomRequest = useCallback<
Required['customRequest']
>(
@@ -77,8 +71,12 @@ const GlobalBatchImportDataSource = () => {
setDBservices([]);
clearUploadCheckStatus();
DmsApi.ProjectService.ImportDBServicesOfProjectsCheckV2(
- { db_services_file: option.file },
- { responseType: 'blob' }
+ {
+ db_services_file: option.file
+ },
+ {
+ responseType: 'blob'
+ }
)
.then((res) => {
importServicesCheck(res);
@@ -90,7 +88,6 @@ const GlobalBatchImportDataSource = () => {
},
[importServicesCheck, setDBservices, clearUploadCheckStatus]
);
-
return (
<>
{
>
);
};
-
export default GlobalBatchImportDataSource;
diff --git a/packages/base/src/page/GlobalDataSource/List/__tests__/index.test.tsx b/packages/base/src/page/GlobalDataSource/List/__tests__/index.test.tsx
index 83c109b72..0685bd17c 100644
--- a/packages/base/src/page/GlobalDataSource/List/__tests__/index.test.tsx
+++ b/packages/base/src/page/GlobalDataSource/List/__tests__/index.test.tsx
@@ -18,7 +18,7 @@ import { superRender } from '@actiontech/shared/lib/testUtil/superRender';
import { mockUseCurrentProject } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentProject';
import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser';
import { mockUseDbServiceDriver } from '@actiontech/shared/lib/testUtil/mockHook/mockUseDbServiceDriver';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
import eventEmitter from '../../../../utils/EventEmitter';
import EmitterKey from '../../../../data/EmitterKey';
diff --git a/packages/base/src/page/GlobalDataSource/List/columns.tsx b/packages/base/src/page/GlobalDataSource/List/columns.tsx
index a3e5c7b2c..eaa46e32c 100644
--- a/packages/base/src/page/GlobalDataSource/List/columns.tsx
+++ b/packages/base/src/page/GlobalDataSource/List/columns.tsx
@@ -1,21 +1,22 @@
-import { timeAddZero } from '@actiontech/shared/lib/utils/Common';
+import { timeAddZero } from '@actiontech/dms-kit';
import { Tag } from 'antd';
import { t } from '../../../locale';
import { IListGlobalDBServiceV2 } from '@actiontech/shared/lib/api/base/service/common';
import {
ActiontechTableColumn,
PageInfoWithoutIndexAndSize
-} from '@actiontech/shared/lib/components/ActiontechTable';
+} from '@actiontech/dms-kit/es/components/ActiontechTable';
import { IListGlobalDBServicesV2Params } from '@actiontech/shared/lib/api/base/service/DBService/index.d';
-import { BasicTypographyEllipsis, DatabaseTypeLogo } from '@actiontech/shared';
+import { DatabaseTypeLogo } from '@actiontech/dms-kit';
+import { BasicTypographyEllipsis } from '@actiontech/shared';
import ConnectionResultColumn from '../../DataSource/components/List/ConnectionResultColumn';
import { ListDBServiceV2LastConnectionTestStatusEnum } from '@actiontech/shared/lib/api/base/service/common.enum';
import { ServiceEnvironmentTagStyleWrapper } from '../../DataSource/components/List/style';
-
export type GLobalDataSourceListParamType = PageInfoWithoutIndexAndSize<
- IListGlobalDBServicesV2Params & { page_index: number }
+ IListGlobalDBServicesV2Params & {
+ page_index: number;
+ }
>;
-
export const GlobalDataSourceColumns = (
getLogoUrlByDbType: (dbType: string) => string
): ActiontechTableColumn<
@@ -99,7 +100,6 @@ export const GlobalDataSourceColumns = (
filterKey: 'filter_by_db_type',
render: (dbType) => {
if (!dbType) return '-';
-
return (
{
const [dbTypeList, setDBTypeList] = useState([]);
const [loading, { setTrue, setFalse }] = useBoolean();
const { getLogoUrlByDbType } = useDbServiceDriver();
-
const updateDbTypeList = React.useCallback(() => {
setTrue();
DBService.ListGlobalDBServicesTips()
@@ -25,7 +23,6 @@ const useGlobalDataSourceType = () => {
setFalse();
});
}, [setFalse, setTrue]);
-
const dbTypeOptions = useMemo(() => {
return dbTypeList.map((item) => ({
value: item,
@@ -35,7 +32,6 @@ const useGlobalDataSourceType = () => {
)
}));
}, [dbTypeList, getLogoUrlByDbType]);
-
return {
updateDbTypeList,
loading,
@@ -43,5 +39,4 @@ const useGlobalDataSourceType = () => {
dbTypeOptions
};
};
-
export default useGlobalDataSourceType;
diff --git a/packages/base/src/page/Home/DefaultScene/__tests__/index.ce.test.tsx b/packages/base/src/page/Home/DefaultScene/__tests__/index.ce.test.tsx
index c7036afa0..b79e0a5f0 100644
--- a/packages/base/src/page/Home/DefaultScene/__tests__/index.ce.test.tsx
+++ b/packages/base/src/page/Home/DefaultScene/__tests__/index.ce.test.tsx
@@ -4,7 +4,7 @@
import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser';
import { baseSuperRender } from '../../../../testUtils/superRender';
import CEDefaultScene from '../index.ce';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
describe('test base/home/CEDefaultScene', () => {
it('should match snapshot when role is admin', () => {
diff --git a/packages/base/src/page/Home/DefaultScene/__tests__/index.test.tsx b/packages/base/src/page/Home/DefaultScene/__tests__/index.test.tsx
index dbfefa2fa..62407a414 100644
--- a/packages/base/src/page/Home/DefaultScene/__tests__/index.test.tsx
+++ b/packages/base/src/page/Home/DefaultScene/__tests__/index.test.tsx
@@ -8,7 +8,7 @@ import {
ignoreConsoleErrors,
UtilsConsoleErrorStringsEnum
} from '@actiontech/shared/lib/testUtil/common';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
jest.mock('react-router-dom', () => {
return {
diff --git a/packages/base/src/page/Home/DefaultScene/components/NotFoundProject/index.tsx b/packages/base/src/page/Home/DefaultScene/components/NotFoundProject/index.tsx
index 70642a25c..095f08884 100644
--- a/packages/base/src/page/Home/DefaultScene/components/NotFoundProject/index.tsx
+++ b/packages/base/src/page/Home/DefaultScene/components/NotFoundProject/index.tsx
@@ -4,7 +4,7 @@ import { ProjectSelectorLabelStyleWrapper } from '../../../../Nav/SideMenu/Proje
import ProjectSelectorModal from '../../../../Project/Detail/NotFoundRecentlyProject/ProjectSelectorModal';
import { NotFoundProjectProps } from './index.type';
import { FlagFilled } from '@actiontech/icons';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
import { useTypedNavigate } from '@actiontech/shared';
const NotFoundProject: React.FC = ({
diff --git a/packages/base/src/page/Home/DefaultScene/components/StepItems/base.tsx b/packages/base/src/page/Home/DefaultScene/components/StepItems/base.tsx
index 2f45293d0..b270aecb0 100644
--- a/packages/base/src/page/Home/DefaultScene/components/StepItems/base.tsx
+++ b/packages/base/src/page/Home/DefaultScene/components/StepItems/base.tsx
@@ -1,9 +1,9 @@
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
import { t } from '../../../../../locale';
import { DataSourceManagerSegmentedKey } from '../../../../DataSourceManagement/index.type';
import { DevopsStepsProps, UserDevopsStepsFactory } from '../../index.type';
import { MemberFilled, DatabaseFilled } from '@actiontech/icons';
-import { CommonIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element';
+import { CommonIconStyleWrapper } from '@actiontech/dms-kit';
export const getDatabaseManagerSteps: (
arg: DevopsStepsProps
diff --git a/packages/base/src/page/Home/DefaultScene/components/StepItems/index.data.tsx b/packages/base/src/page/Home/DefaultScene/components/StepItems/index.data.tsx
index e670bf9a8..33e45868f 100644
--- a/packages/base/src/page/Home/DefaultScene/components/StepItems/index.data.tsx
+++ b/packages/base/src/page/Home/DefaultScene/components/StepItems/index.data.tsx
@@ -1,4 +1,4 @@
-import { StringDictionary } from '@actiontech/shared/lib/types/common.type';
+import { StringDictionary } from '@actiontech/dms-kit/es/types/common.type';
import { t } from '../../../../../locale/index';
import { DevopsStepsProps, UserDevopsStepsFactory } from '../../index.type';
@@ -16,7 +16,7 @@ import {
getSQLEOperateStepItem
} from './sqle';
import { LockFilled, SnippetsFilled, UtilOutlined } from '@actiontech/icons';
-import { CommonIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element';
+import { CommonIconStyleWrapper } from '@actiontech/dms-kit';
export const UserTypeDictionary: StringDictionary = {
admin: t('dmsHome.defaultScene.header.adminUser'),
diff --git a/packages/base/src/page/Home/DefaultScene/components/StepItems/sqle.tsx b/packages/base/src/page/Home/DefaultScene/components/StepItems/sqle.tsx
index d887ca3fe..0ced15774 100644
--- a/packages/base/src/page/Home/DefaultScene/components/StepItems/sqle.tsx
+++ b/packages/base/src/page/Home/DefaultScene/components/StepItems/sqle.tsx
@@ -4,7 +4,7 @@ import {
UserDevopsStepButtonItem,
UserDevopsStepChildren
} from '../../index.type';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
export const getAuditManageStep: (
arg: DevopsStepsProps
diff --git a/packages/base/src/page/Home/DefaultScene/index.ce.tsx b/packages/base/src/page/Home/DefaultScene/index.ce.tsx
index 0bb3f22e5..b87a96d82 100644
--- a/packages/base/src/page/Home/DefaultScene/index.ce.tsx
+++ b/packages/base/src/page/Home/DefaultScene/index.ce.tsx
@@ -1,4 +1,4 @@
-import { DEFAULT_PROJECT_ID } from '@actiontech/shared/lib/data/common';
+import { DEFAULT_PROJECT_ID } from '@actiontech/dms-kit';
import { PERMISSIONS, usePermission } from '@actiontech/shared/lib/features';
import { DefaultSceneStepContainerWrapper } from '../style';
import StepItems from './components/StepItems';
diff --git a/packages/base/src/page/Home/index.tsx b/packages/base/src/page/Home/index.tsx
index 27b2437eb..e8f733045 100644
--- a/packages/base/src/page/Home/index.tsx
+++ b/packages/base/src/page/Home/index.tsx
@@ -1,11 +1,9 @@
import DefaultScene from './DefaultScene';
-import { PageHeader } from '@actiontech/shared';
+import { PageHeader } from '@actiontech/dms-kit';
import { useTranslation } from 'react-i18next';
import CEDefaultScene from './DefaultScene/index.ce';
-
const Home: React.FC = () => {
const { t } = useTranslation();
-
return (
<>
@@ -17,5 +15,4 @@ const Home: React.FC = () => {
>
);
};
-
export default Home;
diff --git a/packages/base/src/page/Login/components/LoginForm.tsx b/packages/base/src/page/Login/components/LoginForm.tsx
index aaa462dbd..1bcb1140b 100644
--- a/packages/base/src/page/Login/components/LoginForm.tsx
+++ b/packages/base/src/page/Login/components/LoginForm.tsx
@@ -2,24 +2,15 @@ import { Form, Typography, Space, Checkbox } from 'antd';
import React, { useEffect, useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import { useRequest } from 'ahooks';
-import {
- BasicInput,
- BasicButton,
- BasicToolTip,
- useTypedQuery
-} from '@actiontech/shared';
+import { BasicInput, BasicButton, BasicToolTip } from '@actiontech/dms-kit';
+import { useTypedQuery } from '@actiontech/shared';
import { LockFilled, UserFilled } from '@actiontech/icons';
import useThemeStyleData from '../../../hooks/useThemeStyleData';
import { LoginFormProps } from '../types';
import { DmsApi } from '@actiontech/shared/lib/api';
-import { SystemRole } from '@actiontech/shared/lib/enum';
-import {
- DMS_REDIRECT_KEY_PARAMS_NAME,
- ROUTE_PATHS
-} from '@actiontech/shared/lib/data/routePaths';
-
+import { SystemRole } from '@actiontech/dms-kit';
+import { DMS_REDIRECT_KEY_PARAMS_NAME, ROUTE_PATHS } from '@actiontech/dms-kit';
const OAUTH2_LOGIN_URL = '/v1/dms/oauth2/link';
-
const LoginForm: React.FC = ({
onSubmit,
loading,
@@ -27,12 +18,9 @@ const LoginForm: React.FC = ({
hidden
}) => {
const { t } = useTranslation();
-
const username = Form.useWatch('username', form);
const extractQueries = useTypedQuery();
-
const { baseTheme } = useThemeStyleData();
-
const { run: getOauth2Tips, data: oauthConfig } = useRequest(
() => {
return DmsApi.OAuth2Service.GetOauth2Tips().then(
@@ -43,7 +31,6 @@ const LoginForm: React.FC = ({
manual: true
}
);
-
const { run: getLoginBasicConfig, data: loginBasicConfig } = useRequest(
() => {
return DmsApi.ConfigurationService.GetLoginTips().then(
@@ -54,7 +41,6 @@ const LoginForm: React.FC = ({
manual: true
}
);
-
const oauth2LoginUrl = useMemo(() => {
const target = extractQueries(ROUTE_PATHS.BASE.LOGIN.index)?.target;
if (target) {
@@ -64,13 +50,11 @@ const LoginForm: React.FC = ({
}
return OAUTH2_LOGIN_URL;
}, [extractQueries]);
-
const renderLoginButton = () => {
const disabledLoginButton =
username === SystemRole.admin
? false
: !!loginBasicConfig?.disable_user_pwd_login;
-
const loginNode = (
= ({
);
}
-
return loginNode;
};
@@ -181,5 +164,4 @@ const LoginForm: React.FC = ({
);
};
-
export default LoginForm;
diff --git a/packages/base/src/page/Login/components/VerificationCodeForm.tsx b/packages/base/src/page/Login/components/VerificationCodeForm.tsx
index 6cc722042..fdb527121 100644
--- a/packages/base/src/page/Login/components/VerificationCodeForm.tsx
+++ b/packages/base/src/page/Login/components/VerificationCodeForm.tsx
@@ -1,14 +1,10 @@
-import {
- VerificationCodeInput,
- BasicButton,
- maskPhoneNumber
-} from '@actiontech/shared';
+import { VerificationCodeInput, BasicButton } from '@actiontech/dms-kit';
+import { maskPhoneNumber } from '@actiontech/dms-kit';
import { Form, Typography, Space } from 'antd';
import { useTranslation } from 'react-i18next';
import { VerificationCodeReturnButtonStyleWrapper } from '../style';
import { DmsApi } from '@actiontech/shared/lib/api';
import { VerificationCodeFormProps } from '../types';
-
const VerificationCodeForm: React.FC = ({
loading,
onVerify,
@@ -18,11 +14,11 @@ const VerificationCodeForm: React.FC = ({
phone
}) => {
const { t } = useTranslation();
-
const onSendCode = () => {
- return DmsApi.SMSService.SendSmsCode({ username });
+ return DmsApi.SMSService.SendSmsCode({
+ username
+ });
};
-
return (
@@ -64,5 +60,4 @@ const VerificationCodeForm: React.FC = ({
);
};
-
export default VerificationCodeForm;
diff --git a/packages/base/src/page/Login/index.test.tsx b/packages/base/src/page/Login/index.test.tsx
index 5557e3f07..8a8dc2668 100644
--- a/packages/base/src/page/Login/index.test.tsx
+++ b/packages/base/src/page/Login/index.test.tsx
@@ -11,18 +11,18 @@ import {
} from '@actiontech/shared/lib/testUtil/mockApi/base/global/data';
import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery';
import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi';
-import { LocalStorageWrapper } from '@actiontech/shared';
-import { eventEmitter } from '@actiontech/shared/lib/utils/EventEmitter';
+import { LocalStorageWrapper } from '@actiontech/dms-kit';
+import { eventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter';
import Login from '.';
import {
CompanyNoticeDisplayStatusEnum,
StorageKey,
SystemRole
-} from '@actiontech/shared/lib/enum';
+} from '@actiontech/dms-kit';
import {
OPEN_CLOUD_BEAVER_URL_PARAM_NAME,
ROUTE_PATHS
-} from '@actiontech/shared/lib/data/routePaths';
+} from '@actiontech/dms-kit';
import {
ignoreConsoleErrors,
UtilsConsoleErrorStringsEnum
diff --git a/packages/base/src/page/Login/index.tsx b/packages/base/src/page/Login/index.tsx
index 0c395c58f..938ca2106 100644
--- a/packages/base/src/page/Login/index.tsx
+++ b/packages/base/src/page/Login/index.tsx
@@ -3,57 +3,45 @@ import { useTranslation } from 'react-i18next';
import { useDispatch } from 'react-redux';
import { updateToken } from '../../store/user';
import LoginLayout from './components/LoginLayout';
-import { useTypedNavigate, useTypedQuery, EmptyBox } from '@actiontech/shared';
+import { EmptyBox } from '@actiontech/dms-kit';
+import { useTypedNavigate, useTypedQuery } from '@actiontech/shared';
import { LoginFormFieldValue, VerificationCodeFormFieldValue } from './types';
import { useBoolean } from 'ahooks';
import useBrowserVersionTips from '../../hooks/useBrowserVersionTips';
-import { LocalStorageWrapper } from '@actiontech/shared';
+import { LocalStorageWrapper } from '@actiontech/dms-kit';
import {
StorageKey,
CompanyNoticeDisplayStatusEnum,
ResponseCode
-} from '@actiontech/shared/lib/enum';
+} from '@actiontech/dms-kit';
import {
OPEN_CLOUD_BEAVER_URL_PARAM_NAME,
ROUTE_PATHS
-} from '@actiontech/shared/lib/data/routePaths';
+} from '@actiontech/dms-kit';
import LoginForm from './components/LoginForm';
import VerificationCodeForm from './components/VerificationCodeForm';
import { DmsApi } from '@actiontech/shared/lib/api';
import { useState } from 'react';
-
const Login = () => {
const { t } = useTranslation();
-
useBrowserVersionTips();
-
const [loginForm] = Form.useForm();
-
const username = Form.useWatch('username', loginForm);
-
const [verificationCodeForm] = Form.useForm();
-
const dispatch = useDispatch();
-
const [messageApi, contextHolder] = message.useMessage();
-
const [loading, { setTrue, setFalse }] = useBoolean();
-
const [phone, setPhone] = useState();
-
const [
verifyCodeLoading,
{ setTrue: verifyCodePending, setFalse: verifyCodeDone }
] = useBoolean();
-
const [
allowVerificationCode,
{ setTrue: showVerificationForm, setFalse: hideVerificationForm }
] = useBoolean();
-
const navigate = useTypedNavigate();
const extractQueries = useTypedQuery();
-
const addSession = () => {
const loginFormValues = loginForm.getFieldsValue();
const verificationCodeFormValues = verificationCodeForm.getFieldsValue();
@@ -108,7 +96,6 @@ const Login = () => {
verifyCodeDone();
});
};
-
const login = (formData: LoginFormFieldValue) => {
// #if [ee]
if (!formData.userAgreement) {
diff --git a/packages/base/src/page/Member/Drawer/Member/AddMember.tsx b/packages/base/src/page/Member/Drawer/Member/AddMember.tsx
index ff8a2e173..105585532 100644
--- a/packages/base/src/page/Member/Drawer/Member/AddMember.tsx
+++ b/packages/base/src/page/Member/Drawer/Member/AddMember.tsx
@@ -2,7 +2,7 @@ import { useBoolean } from 'ahooks';
import { message, Form, Space } from 'antd';
import { useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { useCurrentProject } from '@actiontech/shared/lib/features';
import EmitterKey from '../../../../data/EmitterKey';
import { ModalName } from '../../../../data/ModalName';
@@ -13,27 +13,19 @@ import { IMemberFormFields } from '../index.type';
import MemberForm from './MemberForm';
import Member from '@actiontech/shared/lib/api/base/service/Member';
import { IAddMemberParams } from '@actiontech/shared/lib/api/base/service/Member/index.d';
-import { BasicButton } from '@actiontech/shared';
+import { BasicButton } from '@actiontech/dms-kit';
import { MemberDrawerStyledWrapper } from '../../style';
-
const AddMember: React.FC = () => {
const { t } = useTranslation();
-
const dispatch = useDispatch();
-
const [form] = Form.useForm();
-
const [messageApi, contextHolder] = message.useMessage();
-
const [submitLoading, { setFalse: submitFinish, setTrue: startSubmit }] =
useBoolean();
-
const visible = useSelector(
(state: IReduxState) => state.member.modalStatus[ModalName.DMS_Add_Member]
);
-
const { projectID } = useCurrentProject();
-
const submit = async () => {
const values = await form.validateFields();
const params: IAddMemberParams = {
@@ -58,7 +50,6 @@ const AddMember: React.FC = () => {
submitFinish();
});
};
-
const onClose = () => {
form.resetFields();
dispatch(
@@ -68,7 +59,6 @@ const AddMember: React.FC = () => {
})
);
};
-
return (
{
);
};
-
export default AddMember;
diff --git a/packages/base/src/page/Member/Drawer/Member/MemberForm.tsx b/packages/base/src/page/Member/Drawer/Member/MemberForm.tsx
index 66b20ba97..10be80a99 100644
--- a/packages/base/src/page/Member/Drawer/Member/MemberForm.tsx
+++ b/packages/base/src/page/Member/Drawer/Member/MemberForm.tsx
@@ -1,30 +1,27 @@
import { useEffect } from 'react';
import { Form } from 'antd';
-import { BasicSelect, BasicToolTip, TypedLink } from '@actiontech/shared';
+import { BasicSelect, BasicToolTip } from '@actiontech/dms-kit';
+import { TypedLink } from '@actiontech/shared';
import { Trans, useTranslation } from 'react-i18next';
import { IMemberFormProps } from '../index.type';
import useUsername from '../../../../hooks/useUsername';
import PermissionFields from '../../components/PermissionFields';
-import { filterOptionByLabel } from '@actiontech/shared/lib/components/BasicSelect/utils';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
-
+import { filterOptionByLabel } from '@actiontech/dms-kit';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
const MemberForm: React.FC = ({
form,
isUpdate,
projectID
}) => {
const { t } = useTranslation();
-
const {
loading: getUsernameListLoading,
updateUsernameList,
generateUsernameSelectOption
} = useUsername();
-
useEffect(() => {
updateUsernameList();
}, [updateUsernameList]);
-
return (
= ({
);
};
-
export default MemberForm;
diff --git a/packages/base/src/page/Member/Drawer/Member/UpdateMember.tsx b/packages/base/src/page/Member/Drawer/Member/UpdateMember.tsx
index 8a01a0906..20fcb7259 100644
--- a/packages/base/src/page/Member/Drawer/Member/UpdateMember.tsx
+++ b/packages/base/src/page/Member/Drawer/Member/UpdateMember.tsx
@@ -3,7 +3,7 @@ import { message, Form, Space } from 'antd';
import { useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import EmitterKey from '../../../../data/EmitterKey';
import { ModalName } from '../../../../data/ModalName';
import { IReduxState } from '../../../../store';
@@ -13,11 +13,10 @@ import { IMemberFormFields } from '../index.type';
import MemberForm from './MemberForm';
import formatMemberRole from '../../Common/formatMemberRole';
import { useCurrentProject } from '@actiontech/shared/lib/features';
-import { BasicButton } from '@actiontech/shared';
+import { BasicButton } from '@actiontech/dms-kit';
import { MemberDrawerStyledWrapper } from '../../style';
import { IUpdateMemberParams } from '@actiontech/shared/lib/api/base/service/Member/index.d';
import Member from '@actiontech/shared/lib/api/base/service/Member';
-
const UpdateMember: React.FC = () => {
const { t } = useTranslation();
const dispatch = useDispatch();
@@ -30,7 +29,6 @@ const UpdateMember: React.FC = () => {
visible: state.member.modalStatus[ModalName.DMS_Update_Member],
selectMember: state.member.selectMember
}));
-
const submit = async () => {
const values = await form.validateFields();
const params: IUpdateMemberParams = {
@@ -59,7 +57,6 @@ const UpdateMember: React.FC = () => {
submitFinish();
});
};
-
const onClose = () => {
form.resetFields();
dispatch(
@@ -69,7 +66,6 @@ const UpdateMember: React.FC = () => {
})
);
};
-
useEffect(() => {
if (visible) {
form.setFieldsValue({
@@ -83,7 +79,6 @@ const UpdateMember: React.FC = () => {
});
}
}, [form, selectMember, visible]);
-
return (
{
);
};
-
export default UpdateMember;
diff --git a/packages/base/src/page/Member/Drawer/MemberGroup/AddMemberGroup.tsx b/packages/base/src/page/Member/Drawer/MemberGroup/AddMemberGroup.tsx
index 8b150e73e..5ff5ef7ae 100644
--- a/packages/base/src/page/Member/Drawer/MemberGroup/AddMemberGroup.tsx
+++ b/packages/base/src/page/Member/Drawer/MemberGroup/AddMemberGroup.tsx
@@ -9,13 +9,12 @@ import { updateMemberModalStatus } from '../../../../store/member';
import EventEmitter from '../../../../utils/EventEmitter';
import { IMemberGroupFormFields } from '../index.type';
import MemberGroupForm from './MemberGroupForm';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { useCurrentProject } from '@actiontech/shared/lib/features';
import { IAddMemberGroupParams } from '@actiontech/shared/lib/api/base/service/MemberGroup/index.d';
import MemberGroup from '@actiontech/shared/lib/api/base/service/MemberGroup';
-import { BasicButton } from '@actiontech/shared';
+import { BasicButton } from '@actiontech/dms-kit';
import { MemberDrawerStyledWrapper } from '../../style';
-
const AddMemberGroup: React.FC = () => {
const { t } = useTranslation();
const dispatch = useDispatch();
@@ -28,7 +27,6 @@ const AddMemberGroup: React.FC = () => {
(state: IReduxState) =>
state.member.modalStatus[ModalName.DMS_Add_Member_Group]
);
-
const submit = async () => {
const values = await form.validateFields();
const params: IAddMemberGroupParams = {
@@ -58,7 +56,6 @@ const AddMemberGroup: React.FC = () => {
submitFinish();
});
};
-
const onClose = () => {
form.resetFields();
dispatch(
@@ -68,7 +65,6 @@ const AddMemberGroup: React.FC = () => {
})
);
};
-
return (
{
);
};
-
export default AddMemberGroup;
diff --git a/packages/base/src/page/Member/Drawer/MemberGroup/MemberGroupForm.tsx b/packages/base/src/page/Member/Drawer/MemberGroup/MemberGroupForm.tsx
index 6cbfbe4aa..bbbf442cd 100644
--- a/packages/base/src/page/Member/Drawer/MemberGroup/MemberGroupForm.tsx
+++ b/packages/base/src/page/Member/Drawer/MemberGroup/MemberGroupForm.tsx
@@ -1,30 +1,26 @@
import { Form } from 'antd';
-import { BasicSelect, BasicInput } from '@actiontech/shared';
+import { BasicSelect, BasicInput } from '@actiontech/dms-kit';
import { useTranslation } from 'react-i18next';
import { IMemberGroupFormProps } from '../index.type';
import PermissionFields from '../../components/PermissionFields';
import { useEffect } from 'react';
import useUsername from '../../../../hooks/useUsername';
-import { nameRule } from '@actiontech/shared/lib/utils/FormRule';
-import { filterOptionByLabel } from '@actiontech/shared/lib/components/BasicSelect/utils';
-
+import { nameRule } from '@actiontech/dms-kit';
+import { filterOptionByLabel } from '@actiontech/dms-kit';
const MemberGroupForm: React.FC = ({
form,
isUpdate,
projectID
}) => {
const { t } = useTranslation();
-
const {
loading: getUsernameListLoading,
updateUsernameList,
generateUsernameSelectOption
} = useUsername();
-
useEffect(() => {
updateUsernameList();
}, [updateUsernameList]);
-
return (
= ({
);
};
-
export default MemberGroupForm;
diff --git a/packages/base/src/page/Member/Drawer/MemberGroup/UpdateMemberGroup.tsx b/packages/base/src/page/Member/Drawer/MemberGroup/UpdateMemberGroup.tsx
index a987af6ce..f619135ab 100644
--- a/packages/base/src/page/Member/Drawer/MemberGroup/UpdateMemberGroup.tsx
+++ b/packages/base/src/page/Member/Drawer/MemberGroup/UpdateMemberGroup.tsx
@@ -10,33 +10,25 @@ import { updateMemberModalStatus } from '../../../../store/member';
import EventEmitter from '../../../../utils/EventEmitter';
import { IMemberGroupFormFields } from '../index.type';
import MemberGroupForm from './MemberGroupForm';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { useCurrentProject } from '@actiontech/shared/lib/features';
import formatMemberRole from '../../Common/formatMemberRole';
import { IUpdateMemberGroupParams } from '@actiontech/shared/lib/api/base/service/MemberGroup/index.d';
import MemberGroup from '@actiontech/shared/lib/api/base/service/MemberGroup';
-import { BasicButton } from '@actiontech/shared';
+import { BasicButton } from '@actiontech/dms-kit';
import { MemberDrawerStyledWrapper } from '../../style';
-
const UpdateMemberGroup: React.FC = () => {
const { t } = useTranslation();
-
const dispatch = useDispatch();
-
const [messageApi, contextHolder] = message.useMessage();
-
const { projectID } = useCurrentProject();
-
const [form] = Form.useForm();
-
const [submitLoading, { setFalse: submitFinish, setTrue: startSubmit }] =
useBoolean();
-
const { visible, selectMemberGroup } = useSelector((state: IReduxState) => ({
visible: state.member.modalStatus[ModalName.DMS_Update_Member_Group],
selectMemberGroup: state.member.selectMemberGroup
}));
-
const submit = async () => {
const values = await form.validateFields();
const params: IUpdateMemberGroupParams = {
@@ -66,7 +58,6 @@ const UpdateMemberGroup: React.FC = () => {
submitFinish();
});
};
-
const onClose = () => {
form.resetFields();
dispatch(
@@ -76,7 +67,6 @@ const UpdateMemberGroup: React.FC = () => {
})
);
};
-
useEffect(() => {
if (visible) {
form.setFieldsValue({
@@ -93,7 +83,6 @@ const UpdateMemberGroup: React.FC = () => {
});
}
}, [form, visible, selectMemberGroup]);
-
return (
{
);
};
-
export default UpdateMemberGroup;
diff --git a/packages/base/src/page/Member/List/MemberGroupList.tsx b/packages/base/src/page/Member/List/MemberGroupList.tsx
index 105d30c20..352db2fb4 100644
--- a/packages/base/src/page/Member/List/MemberGroupList.tsx
+++ b/packages/base/src/page/Member/List/MemberGroupList.tsx
@@ -6,7 +6,7 @@ import {
ActiontechTable,
useTableRequestError,
useTableRequestParams
-} from '@actiontech/shared/lib/components/ActiontechTable';
+} from '@actiontech/dms-kit/es/components/ActiontechTable';
import {
useCurrentProject,
usePermission
@@ -16,7 +16,7 @@ import { IListMemberGroup } from '@actiontech/shared/lib/api/base/service/common
import { IListMemberGroupsParams } from '@actiontech/shared/lib/api/base/service/MemberGroup/index.d';
import MemberGroup from '@actiontech/shared/lib/api/base/service/MemberGroup';
import { MemberGroupListColumns } from './column';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import {
updateMemberModalStatus,
updateSelectMemberGroup
diff --git a/packages/base/src/page/Member/List/MemberList.tsx b/packages/base/src/page/Member/List/MemberList.tsx
index 5c36d0d8f..7a2a26049 100644
--- a/packages/base/src/page/Member/List/MemberList.tsx
+++ b/packages/base/src/page/Member/List/MemberList.tsx
@@ -8,12 +8,12 @@ import {
ActiontechTable,
useTableRequestError,
useTableRequestParams
-} from '@actiontech/shared/lib/components/ActiontechTable';
+} from '@actiontech/dms-kit/es/components/ActiontechTable';
import {
useCurrentProject,
usePermission
} from '@actiontech/shared/lib/features';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { IListMember } from '@actiontech/shared/lib/api/base/service/common';
import { IListMembersParams } from '@actiontech/shared/lib/api/base/service/Member/index.d';
import Member from '@actiontech/shared/lib/api/base/service/Member';
diff --git a/packages/base/src/page/Member/List/__tests__/MemberGroupList.test.tsx b/packages/base/src/page/Member/List/__tests__/MemberGroupList.test.tsx
index 9a4236a9d..698de9bca 100644
--- a/packages/base/src/page/Member/List/__tests__/MemberGroupList.test.tsx
+++ b/packages/base/src/page/Member/List/__tests__/MemberGroupList.test.tsx
@@ -19,7 +19,7 @@ import {
createSpySuccessResponse
} from '@actiontech/shared/lib/testUtil/mockApi';
import { MemberListTypeEnum } from '../../index.enum';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
jest.mock('react-redux', () => {
return {
diff --git a/packages/base/src/page/Member/List/__tests__/MemberList.test.tsx b/packages/base/src/page/Member/List/__tests__/MemberList.test.tsx
index cf855073a..77ef79266 100644
--- a/packages/base/src/page/Member/List/__tests__/MemberList.test.tsx
+++ b/packages/base/src/page/Member/List/__tests__/MemberList.test.tsx
@@ -19,7 +19,7 @@ import {
createSpySuccessResponse
} from '@actiontech/shared/lib/testUtil/mockApi';
import { MemberListTypeEnum } from '../../index.enum';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
jest.mock('react-redux', () => {
return {
diff --git a/packages/base/src/page/Member/List/actions.tsx b/packages/base/src/page/Member/List/actions.tsx
index f17308022..d967a1b90 100644
--- a/packages/base/src/page/Member/List/actions.tsx
+++ b/packages/base/src/page/Member/List/actions.tsx
@@ -7,7 +7,7 @@ import {
IListMember,
IListMemberGroup
} from '@actiontech/shared/lib/api/base/service/common';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
export const MemberListActions = (
onEditMember: (record: IListMember | undefined) => void,
diff --git a/packages/base/src/page/Member/List/column.tsx b/packages/base/src/page/Member/List/column.tsx
index 56c4a3be8..5fef63479 100644
--- a/packages/base/src/page/Member/List/column.tsx
+++ b/packages/base/src/page/Member/List/column.tsx
@@ -1,16 +1,15 @@
import { Typography, Space, Popover } from 'antd';
-import { ActiontechTableColumn } from '@actiontech/shared/lib/components/ActiontechTable/index.type';
+import { ActiontechTableColumn } from '@actiontech/dms-kit/es/components/ActiontechTable/index.type';
import { t } from '../../../locale';
import {
IListMember,
IListMemberGroup
} from '@actiontech/shared/lib/api/base/service/common';
import ProjectManagePermissions from '../components/ProjectManagePermissions';
-import { BasicToolTip } from '@actiontech/shared';
+import { BasicToolTip } from '@actiontech/dms-kit';
import ProjectTagList from '../../../components/ProjectTagList';
import SystemRoleTagList from '../../../components/SystemRoleTagList';
import ProjectOpPermissions from '../components/ProjectOpPermissions';
-
export const MemberListColumns: ActiontechTableColumn = [
{
dataIndex: 'user',
@@ -64,7 +63,6 @@ export const MemberListColumns: ActiontechTableColumn = [
) {
return '-';
}
-
if (record.is_project_admin || !!record.current_project_admin?.is_admin) {
return (
= [
}
title={null}
placement="top"
- overlayStyle={{ maxWidth: 450 }}
+ overlayStyle={{
+ maxWidth: 450
+ }}
>
ALL
);
}
-
return ;
}
},
@@ -104,7 +103,6 @@ export const MemberListColumns: ActiontechTableColumn = [
}
}
];
-
export const MemberGroupListColumns: ActiontechTableColumn = [
{
dataIndex: 'name',
@@ -151,11 +149,9 @@ export const MemberGroupListColumns: ActiontechTableColumn = [
) {
return '-';
}
-
if (record.is_project_admin) {
return 'ALL';
}
-
return ;
}
},
diff --git a/packages/base/src/page/Member/Modal/Member/ManageMemberGroup.tsx b/packages/base/src/page/Member/Modal/Member/ManageMemberGroup.tsx
index 0273a378e..72943fb40 100644
--- a/packages/base/src/page/Member/Modal/Member/ManageMemberGroup.tsx
+++ b/packages/base/src/page/Member/Modal/Member/ManageMemberGroup.tsx
@@ -4,8 +4,8 @@ import { useDispatch, useSelector } from 'react-redux';
import { useTranslation } from 'react-i18next';
import { useRequest } from 'ahooks';
import { useCurrentProject } from '@actiontech/shared/lib/features';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
-import { BasicButton, BasicModal, BasicTag } from '@actiontech/shared';
+import { ResponseCode } from '@actiontech/dms-kit';
+import { BasicButton, BasicModal, BasicTag } from '@actiontech/dms-kit';
import { IReduxState } from '../../../../store';
import {
updateMemberModalStatus,
@@ -18,19 +18,16 @@ import EventEmitter from '../../../../utils/EventEmitter';
import EmitterKey from '../../../../data/EmitterKey';
import formatMemberRole from '../../Common/formatMemberRole';
import { ManageMemberGroupContainer, MemberGroupCard } from './style';
-import { BasicEmpty } from '@actiontech/shared';
-
+import { BasicEmpty } from '@actiontech/dms-kit';
const ManageMemberGroup: React.FC = () => {
const { t } = useTranslation();
const dispatch = useDispatch();
const [messageApi, contextHolder] = message.useMessage();
const { projectID } = useCurrentProject();
-
const { visible, selectMember } = useSelector((state: IReduxState) => ({
visible: state.member.modalStatus[ModalName.DMS_Manage_Member_Group],
selectMember: state.member.selectMember
}));
-
const {
data: memberGroups,
loading,
@@ -52,13 +49,11 @@ const ManageMemberGroup: React.FC = () => {
manual: true
}
);
-
useEffect(() => {
if (visible && selectMember?.user?.uid) {
fetchMemberGroups();
}
}, [visible, selectMember?.user?.uid, fetchMemberGroups]);
-
const onClose = useCallback(() => {
dispatch(
updateMemberModalStatus({
@@ -67,7 +62,6 @@ const ManageMemberGroup: React.FC = () => {
})
);
}, [dispatch]);
-
const handleEditPermissions = useCallback(
(memberGroup: IListMemberGroup) => {
dispatch(
@@ -85,15 +79,12 @@ const ManageMemberGroup: React.FC = () => {
},
[dispatch, onClose]
);
-
const handleExitGroup = useCallback(
(memberGroup: IListMemberGroup) => {
if (!selectMember?.user?.uid || !memberGroup.uid) return;
-
const updatedUserUids = (memberGroup.users || [])
.filter((user) => user.uid !== selectMember.user?.uid)
.map((user) => user.uid!);
-
MemberGroup.UpdateMemberGroup({
member_group_uid: memberGroup.uid,
project_uid: projectID,
@@ -118,19 +109,16 @@ const ManageMemberGroup: React.FC = () => {
},
[selectMember?.user?.uid, projectID, messageApi, fetchMemberGroups, t]
);
-
const renderPermissions = useCallback((roleWithOpRanges: any[] = []) => {
if (!roleWithOpRanges || roleWithOpRanges.length === 0) {
return '-';
}
-
return roleWithOpRanges.map((item, index) => (
{item.role_uid?.name}
));
}, []);
-
const renderMemberGroup = useCallback(
(group: IListMemberGroup) => (
@@ -166,7 +154,6 @@ const ManageMemberGroup: React.FC = () => {
),
[handleEditPermissions, handleExitGroup, renderPermissions, t]
);
-
return (
{
);
};
-
export default ManageMemberGroup;
diff --git a/packages/base/src/page/Member/__tests__/index.test.tsx b/packages/base/src/page/Member/__tests__/index.test.tsx
index 8928b9af9..197e6a249 100644
--- a/packages/base/src/page/Member/__tests__/index.test.tsx
+++ b/packages/base/src/page/Member/__tests__/index.test.tsx
@@ -14,7 +14,7 @@ import {
} from '@actiontech/shared/lib/testUtil/mockHook/data';
import userCenter from '@actiontech/shared/lib/testUtil/mockApi/base/userCenter';
import dbServices from '@actiontech/shared/lib/testUtil/mockApi/base/dbServices';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
describe('base/Member', () => {
beforeEach(() => {
diff --git a/packages/base/src/page/Member/actions.tsx b/packages/base/src/page/Member/actions.tsx
index cedd3a88e..a7aabf1e1 100644
--- a/packages/base/src/page/Member/actions.tsx
+++ b/packages/base/src/page/Member/actions.tsx
@@ -7,7 +7,6 @@ import { ActionButton } from '@actiontech/shared';
import { PlusOutlined } from '@actiontech/icons';
import { ModalName } from '../../data/ModalName';
import { MemberListTypeEnum } from './index.enum';
-
export const MemberListPageHeaderActions = (
onClick: (modalName: ModalName) => void,
activePage: MemberListTypeEnum
diff --git a/packages/base/src/page/Member/components/PermissionFields.tsx b/packages/base/src/page/Member/components/PermissionFields.tsx
index 661216473..be7749e14 100644
--- a/packages/base/src/page/Member/components/PermissionFields.tsx
+++ b/packages/base/src/page/Member/components/PermissionFields.tsx
@@ -2,20 +2,20 @@ import { Col, Form, Spin, Alert } from 'antd';
import {
BasicSelect,
BasicInput,
- FormItemSubTitle,
BasicSwitch,
EmptyBox
-} from '@actiontech/shared';
+} from '@actiontech/dms-kit';
+import { FormItemSubTitle } from '@actiontech/dms-kit';
import { useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import useRole from '../../../hooks/useRole';
import useDbService from '../../../hooks/useDbService';
import { MemberRoleWithOpRangeOpRangeTypeEnum } from '@actiontech/shared/lib/api/base/service/common.enum';
-import { filterOptionByLabel } from '@actiontech/shared/lib/components/BasicSelect/utils';
+import { filterOptionByLabel } from '@actiontech/dms-kit';
import {
DrawerFormIconWrapper,
FormListAddButtonWrapper
-} from '@actiontech/shared/lib/styleWrapper/element';
+} from '@actiontech/dms-kit';
import {
MemberRoleSelectorRowStyleWrapper,
MemberPermissionCheckboxGroupStyleWrapper
@@ -24,42 +24,35 @@ import { PlusCircleFilled, MinusCircleFilled } from '@actiontech/icons';
import { ListOpPermissionsFilterByTargetEnum } from '@actiontech/shared/lib/api/base/service/OpPermission/index.enum';
import useOpPermission from '../../../hooks/useOpPermission';
import { usePermission, PERMISSIONS } from '@actiontech/shared/lib/features';
-
type PermissionFieldsProps = {
projectID: string;
};
-
const PermissionFields: React.FC = ({ projectID }) => {
const { t } = useTranslation();
-
const isProjectAdmin = Form.useWatch('isProjectAdmin');
-
const { checkActionPermission } = usePermission();
-
const {
loading: getRoleListLoading,
updateRoleList,
generateRoleSelectOption
} = useRole();
-
const {
loading: getDbServiceListLoading,
updateDbServiceList,
generateDbServiceIDSelectOptions
} = useDbService();
-
const {
loading: getOpPermissionListLoading,
updateOpPermissionList,
opPermissionList
} = useOpPermission();
-
useEffect(() => {
updateRoleList();
- updateDbServiceList({ project_uid: projectID });
+ updateDbServiceList({
+ project_uid: projectID
+ });
updateOpPermissionList(ListOpPermissionsFilterByTargetEnum.project);
}, [projectID, updateDbServiceList, updateRoleList, updateOpPermissionList]);
-
return (
<>
@@ -123,7 +116,11 @@ const PermissionFields: React.FC = ({ projectID }) => {
label={
index === 0 ? t('dmsMember.roleSelector.opRange') : ''
}
- rules={[{ required: true }]}
+ rules={[
+ {
+ required: true
+ }
+ ]}
>
= ({ projectID }) => {
{...field}
key={field.key}
name={[field.name, 'role_uid']}
- rules={[{ required: true }]}
+ rules={[
+ {
+ required: true
+ }
+ ]}
>
popupMatchSelectWidth={false}
@@ -207,5 +208,4 @@ const PermissionFields: React.FC = ({ projectID }) => {
>
);
};
-
export default PermissionFields;
diff --git a/packages/base/src/page/Member/components/ProjectManagePermissions.tsx b/packages/base/src/page/Member/components/ProjectManagePermissions.tsx
index 980753b94..fe278abdc 100644
--- a/packages/base/src/page/Member/components/ProjectManagePermissions.tsx
+++ b/packages/base/src/page/Member/components/ProjectManagePermissions.tsx
@@ -4,15 +4,13 @@ import {
ICurrentProjectAdmin,
IProjectManagePermission
} from '@actiontech/shared/lib/api/base/service/common';
-import { BasicTag, EmptyBox } from '@actiontech/shared';
-
+import { BasicTag, EmptyBox } from '@actiontech/dms-kit';
interface ProjectManagePermissionsProps {
isProjectAdmin: boolean;
currentProjectAdmin?: ICurrentProjectAdmin;
managePermissions?: IProjectManagePermission[];
isGroup?: boolean;
}
-
const ProjectManagePermissions: React.FC = ({
isProjectAdmin,
currentProjectAdmin,
@@ -20,7 +18,6 @@ const ProjectManagePermissions: React.FC = ({
isGroup = false
}) => {
const { t } = useTranslation();
-
if (isProjectAdmin || !!currentProjectAdmin?.is_admin) {
return (
@@ -35,14 +32,15 @@ const ProjectManagePermissions: React.FC = ({
}
title={null}
placement="top"
- overlayStyle={{ maxWidth: 450 }}
+ overlayStyle={{
+ maxWidth: 450
+ }}
>
ALL
);
}
-
if (managePermissions.length > 0) {
return (
@@ -51,7 +49,9 @@ const ProjectManagePermissions: React.FC = ({
if={!isGroup}
defaultNode={
@@ -70,11 +70,15 @@ const ProjectManagePermissions: React.FC = ({
}
title={null}
placement="top"
- overlayStyle={{ maxWidth: 450 }}
+ overlayStyle={{
+ maxWidth: 450
+ }}
key={permission.uid}
>
@@ -86,8 +90,6 @@ const ProjectManagePermissions: React.FC = ({
);
}
-
return '-';
};
-
export default ProjectManagePermissions;
diff --git a/packages/base/src/page/Member/components/ProjectOpPermissions.tsx b/packages/base/src/page/Member/components/ProjectOpPermissions.tsx
index d15420609..14e67309c 100644
--- a/packages/base/src/page/Member/components/ProjectOpPermissions.tsx
+++ b/packages/base/src/page/Member/components/ProjectOpPermissions.tsx
@@ -3,14 +3,12 @@ import {
IProjectRole
} from '@actiontech/shared/lib/api/base/service/common';
import { Space, Typography, Popover } from 'antd';
-import { BasicTag } from '@actiontech/shared';
+import { BasicTag } from '@actiontech/dms-kit';
import { t } from '../../../locale';
import React from 'react';
-
type ProjectOpPermissionsProps = {
permissions: IProjectOpPermission[];
};
-
const ProjectOpPermissions: React.FC = ({
permissions
}) => {
@@ -21,7 +19,6 @@ const ProjectOpPermissions: React.FC = ({
) => {
const roleName = role?.name || '';
const isFromMemberGroup = !!role.member_group;
-
const popoverContent = (
@@ -37,28 +34,32 @@ const ProjectOpPermissions: React.FC
= ({
);
-
return (
-
+
{roleName}
);
};
-
return (
{permissions.map((permission, index) => {
const dataSource = permission?.data_source ?? '';
const roles = permission?.roles ?? [];
-
return (
{dataSource}:
@@ -71,5 +72,4 @@ const ProjectOpPermissions: React.FC = ({
);
};
-
export default ProjectOpPermissions;
diff --git a/packages/base/src/page/Member/index.tsx b/packages/base/src/page/Member/index.tsx
index ff8fe80b6..42224291a 100644
--- a/packages/base/src/page/Member/index.tsx
+++ b/packages/base/src/page/Member/index.tsx
@@ -3,33 +3,25 @@ import { useTranslation } from 'react-i18next';
import { useDispatch } from 'react-redux';
import MemberModals from './Modals';
import { Space } from 'antd';
-import {
- PageHeader,
- SegmentedTabs,
- SegmentedTabsProps
-} from '@actiontech/shared';
+import { PageHeader, SegmentedTabs } from '@actiontech/dms-kit';
+import { SegmentedTabsProps } from '@actiontech/dms-kit';
import { ProjectMemberStyleWrapper } from './style';
import { MemberListTypeEnum } from './index.enum';
import MemberList from './List/MemberList';
import MemberGroupList from './List/MemberGroupList';
import { updateMemberModalStatus } from '../../store/member';
import { ModalName } from '../../data/ModalName';
-import { TableRefreshButton } from '@actiontech/shared/lib/components/ActiontechTable';
+import { TableRefreshButton } from '@actiontech/dms-kit/es/components/ActiontechTable';
import EventEmitter from '../../utils/EventEmitter';
import EmitterKey from '../../data/EmitterKey';
import { MemberListPageHeaderActions } from './actions';
-
const Member: React.FC = () => {
const { t } = useTranslation();
-
const dispatch = useDispatch();
-
const [activePage, setActivePage] = useState(MemberListTypeEnum.member_list);
-
const onRefreshTable = () => {
EventEmitter.emit(EmitterKey.DMS_Refresh_Member_List);
};
-
const pageItems: SegmentedTabsProps['items'] = [
{
value: MemberListTypeEnum.member_list,
@@ -42,7 +34,6 @@ const Member: React.FC = () => {
children:
}
];
-
const renderExtraButton = () => {
const handleClick = (modalName: ModalName) => {
dispatch(
@@ -52,12 +43,10 @@ const Member: React.FC = () => {
})
);
};
-
const pageHeaderActions = MemberListPageHeaderActions(
handleClick,
activePage
);
-
return (
<>
{pageHeaderActions['add-member']}
@@ -65,7 +54,6 @@ const Member: React.FC = () => {
>
);
};
-
return (
{
);
};
-
export default Member;
diff --git a/packages/base/src/page/Member/style.ts b/packages/base/src/page/Member/style.ts
index 988c05f79..fdbfd419c 100644
--- a/packages/base/src/page/Member/style.ts
+++ b/packages/base/src/page/Member/style.ts
@@ -1,14 +1,12 @@
import { styled } from '@mui/material/styles';
import { Row, Checkbox } from 'antd';
-import { BasicDrawer } from '@actiontech/shared';
-
+import { BasicDrawer } from '@actiontech/dms-kit';
export const ProjectMemberStyleWrapper = styled('section')`
.ant-tabs-nav {
margin-bottom: 0 !important;
padding-left: 24px;
}
`;
-
export const FormListDeleteIconWrap = styled('section')`
height: 36px;
width: 36px;
@@ -25,7 +23,6 @@ export const FormListDeleteIconWrap = styled('section')`
theme.sharedTheme.components.basicSelect.hover.border};
}
`;
-
export const MemberDrawerStyledWrapper = styled(BasicDrawer)`
.member-form-add-button {
background-color: ${({ theme }) =>
@@ -37,13 +34,11 @@ export const MemberDrawerStyledWrapper = styled(BasicDrawer)`
font-size: 14px !important;
}
`;
-
export const MemberRoleSelectorRowStyleWrapper = styled(Row)`
.ant-col {
height: 100%;
}
`;
-
export const MemberPermissionCheckboxGroupStyleWrapper = styled(Checkbox.Group)`
&.ant-checkbox-group {
width: 100%;
diff --git a/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/__tests__/index.test.tsx b/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/__tests__/index.test.tsx
index 95bee9fd8..7895c8bbc 100644
--- a/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/__tests__/index.test.tsx
+++ b/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/__tests__/index.test.tsx
@@ -1,14 +1,12 @@
import { act, cleanup, fireEvent, screen } from '@testing-library/react';
import { baseSuperRender } from '../../../../../testUtils/superRender';
import AvailabilityZoneSelector from '../index';
-import { mockUseRecentlySelectedZone } from '../../../../../testUtils/mockHooks/mockUseRecentlySelectedZone';
-import { mockUseRecentlySelectedZoneData } from '../../../../../testUtils/mockHooks/data';
import { IUidWithName } from '@actiontech/shared/lib/api/base/service/common';
import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery';
import EventEmitter from '../../../../../utils/EventEmitter';
import EmitterKey from '../../../../../data/EmitterKey';
import { useNavigate } from 'react-router-dom';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
jest.mock('react-router-dom', () => ({
...jest.requireActual('react-router-dom'),
@@ -24,11 +22,9 @@ describe('AvailabilityZoneSelector', () => {
const navigateSpy = jest.fn();
const emitSpy = jest.spyOn(EventEmitter, 'emit');
+ const updateRecentlySelectedZoneSpy = jest.fn();
beforeEach(() => {
- mockUseRecentlySelectedZone({
- availabilityZone: mockZoneTips[0]
- });
(useNavigate as jest.Mock).mockImplementation(() => navigateSpy);
jest.useFakeTimers();
});
@@ -41,7 +37,11 @@ describe('AvailabilityZoneSelector', () => {
it('renders with current availability zone', () => {
const { baseElement } = baseSuperRender(
-
+
);
expect(screen.getByText('Zone 1')).toBeInTheDocument();
@@ -49,17 +49,22 @@ describe('AvailabilityZoneSelector', () => {
});
it('renders placeholder when no zone is selected', () => {
- mockUseRecentlySelectedZone({
- availabilityZone: undefined
- });
-
- baseSuperRender();
+ baseSuperRender(
+
+ );
expect(screen.getByText('请选择')).toBeInTheDocument();
});
it('opens dropdown when clicked and displays zones', async () => {
const { baseElement } = baseSuperRender(
-
+
);
const selector = getBySelector('.text', baseElement);
@@ -72,7 +77,11 @@ describe('AvailabilityZoneSelector', () => {
it('filters zones based on search input', async () => {
const { baseElement } = baseSuperRender(
-
+
);
const selector = getBySelector('.text', baseElement);
@@ -90,7 +99,11 @@ describe('AvailabilityZoneSelector', () => {
it('displays empty state when no zones match search', async () => {
const { baseElement } = baseSuperRender(
-
+
);
const selector = getBySelector('.text', baseElement);
@@ -109,7 +122,11 @@ describe('AvailabilityZoneSelector', () => {
it('handles empty zoneTips array', async () => {
const { baseElement } = baseSuperRender(
-
+
);
const selector = getBySelector('.text', baseElement);
@@ -123,7 +140,11 @@ describe('AvailabilityZoneSelector', () => {
it('selects a different zone and calls updateRecentlySelectedZone', async () => {
const { baseElement } = baseSuperRender(
-
+
);
const selector = getBySelector('.text', baseElement);
@@ -145,9 +166,7 @@ describe('AvailabilityZoneSelector', () => {
await act(async () => jest.advanceTimersByTime(0));
- expect(
- mockUseRecentlySelectedZoneData.updateRecentlySelectedZone
- ).toHaveBeenCalledWith(mockZoneTips[1]);
+ expect(updateRecentlySelectedZoneSpy).toHaveBeenCalledWith(mockZoneTips[1]);
expect(emitSpy).toHaveBeenCalledWith(
EmitterKey.DMS_Sync_Project_Archived_Status
);
@@ -157,7 +176,11 @@ describe('AvailabilityZoneSelector', () => {
it('does not trigger popconfirm for currently selected zone', async () => {
const { baseElement } = baseSuperRender(
-
+
);
const selector = getBySelector('.text', baseElement);
@@ -175,9 +198,7 @@ describe('AvailabilityZoneSelector', () => {
).not.toBeInTheDocument();
expect(screen.queryByText('确 定')).not.toBeInTheDocument();
- expect(
- mockUseRecentlySelectedZoneData.updateRecentlySelectedZone
- ).not.toHaveBeenCalled();
+ expect(updateRecentlySelectedZoneSpy).not.toHaveBeenCalled();
expect(emitSpy).not.toHaveBeenCalled();
expect(navigateSpy).not.toHaveBeenCalled();
});
diff --git a/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/index.tsx b/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/index.tsx
index e03e40248..762016463 100644
--- a/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/index.tsx
+++ b/packages/base/src/page/Nav/SideMenu/AvailabilityZoneSelector/index.tsx
@@ -5,31 +5,29 @@ import {
AvailabilityZoneSelectorStyleWrapper,
AvailabilityZoneMenuStyleWrapper
} from './style';
-import { BasicEmpty, useTypedNavigate } from '@actiontech/shared';
+import { BasicEmpty } from '@actiontech/dms-kit';
+import { useTypedNavigate } from '@actiontech/shared';
import { useTranslation } from 'react-i18next';
-import useRecentlySelectedZone from '../../../../hooks/useRecentlySelectedZone';
import { IUidWithName } from '@actiontech/shared/lib/api/base/service/common';
import EventEmitter from '../../../../utils/EventEmitter';
import EmitterKey from '../../../../data/EmitterKey';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
type AvailabilityZoneSelectorProps = {
zoneTips?: IUidWithName[];
+ availabilityZone?: IUidWithName;
+ updateRecentlySelectedZone: (zone: IUidWithName) => void;
};
const AvailabilityZoneSelector: React.FC = ({
- zoneTips
+ zoneTips,
+ availabilityZone,
+ updateRecentlySelectedZone
}) => {
const { t } = useTranslation();
-
const navigate = useTypedNavigate();
-
- const { availabilityZone, updateRecentlySelectedZone } =
- useRecentlySelectedZone();
-
const [searchText, setSearchText] = useState('');
const [dropdownOpen, setDropdownOpen] = useState(false);
-
const filteredZones = useCallback(() => {
return (
zoneTips?.filter((zone) =>
@@ -37,7 +35,6 @@ const AvailabilityZoneSelector: React.FC = ({
) ?? []
);
}, [searchText, zoneTips]);
-
const handleSelectZone = (zone: IUidWithName) => {
updateRecentlySelectedZone(zone);
setDropdownOpen(false);
@@ -45,7 +42,6 @@ const AvailabilityZoneSelector: React.FC = ({
EventEmitter.emit(EmitterKey.DMS_Reload_Initial_Data);
navigate(ROUTE_PATHS.BASE.HOME);
};
-
const customDropdownRender = () => {
const zones = filteredZones();
return (
@@ -85,7 +81,6 @@ const AvailabilityZoneSelector: React.FC = ({
);
}
-
return (
= ({
);
};
-
return (
= ({
);
};
-
export default AvailabilityZoneSelector;
diff --git a/packages/base/src/page/Nav/SideMenu/MenuList/index.test.tsx b/packages/base/src/page/Nav/SideMenu/MenuList/index.test.tsx
index b3228db7f..11cdef782 100644
--- a/packages/base/src/page/Nav/SideMenu/MenuList/index.test.tsx
+++ b/packages/base/src/page/Nav/SideMenu/MenuList/index.test.tsx
@@ -2,7 +2,7 @@ import { cleanup, act } from '@testing-library/react';
import MenuList from '.';
import { baseSuperRender } from '../../../../testUtils/superRender';
import { useNavigate } from 'react-router-dom';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
import {
ignoreConsoleErrors,
UtilsConsoleErrorStringsEnum
diff --git a/packages/base/src/page/Nav/SideMenu/MenuList/menus/base.tsx b/packages/base/src/page/Nav/SideMenu/MenuList/menus/base.tsx
index 5c2a76c8c..20125e54f 100644
--- a/packages/base/src/page/Nav/SideMenu/MenuList/menus/base.tsx
+++ b/packages/base/src/page/Nav/SideMenu/MenuList/menus/base.tsx
@@ -8,7 +8,7 @@ import {
} from '@actiontech/icons';
import { GenerateMenuItemI18nConfig } from './index.type';
import { SIDE_MENU_DATA_PLACEHOLDER_KEY } from './common';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
import { parse2ReactRouterPath } from '@actiontech/shared';
import { PERMISSIONS } from '@actiontech/shared/lib/features';
diff --git a/packages/base/src/page/Nav/SideMenu/MenuList/menus/sqle.tsx b/packages/base/src/page/Nav/SideMenu/MenuList/menus/sqle.tsx
index 258715134..7a5291f35 100644
--- a/packages/base/src/page/Nav/SideMenu/MenuList/menus/sqle.tsx
+++ b/packages/base/src/page/Nav/SideMenu/MenuList/menus/sqle.tsx
@@ -22,7 +22,7 @@ import {
} from '@actiontech/icons';
import { PERMISSIONS } from '@actiontech/shared/lib/features';
import { parse2ReactRouterPath } from '@actiontech/shared';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
const projectOverviewMenuItem: GenerateMenuItemI18nConfig = (projectID) => ({
label: 'dmsMenu.projectOverview',
diff --git a/packages/base/src/page/Nav/SideMenu/ProjectSelector/MockSelectItemOptions.tsx b/packages/base/src/page/Nav/SideMenu/ProjectSelector/MockSelectItemOptions.tsx
index c7ff0bc88..d448b3fb7 100644
--- a/packages/base/src/page/Nav/SideMenu/ProjectSelector/MockSelectItemOptions.tsx
+++ b/packages/base/src/page/Nav/SideMenu/ProjectSelector/MockSelectItemOptions.tsx
@@ -7,7 +7,7 @@ import {
import { IBindProject } from './index.type';
import { FlagFilled, LockOutlined } from '@actiontech/icons';
import { useTypedNavigate } from '@actiontech/shared';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
const MockSelectItemOptions: React.FC<{
list: IBindProject[];
diff --git a/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.tsx b/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.tsx
index 94fef5da4..73089fd93 100644
--- a/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.tsx
+++ b/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.tsx
@@ -1,24 +1,19 @@
import { useRef, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { InputRef, SelectProps } from 'antd';
-import {
- BasicButton,
- BasicEmpty,
- EmptyBox,
- TypedLink
-} from '@actiontech/shared';
-import CustomSelectSearchInput from '@actiontech/shared/lib/components/CustomSelect/CustomSelectSearchInput';
+import { BasicButton, BasicEmpty, EmptyBox } from '@actiontech/dms-kit';
+import { TypedLink } from '@actiontech/shared';
import {
ProjectSelectorPopupMenuStyleWrapper,
ProjectSelectorStyleWrapper
} from './style';
-import { CustomSelectPopupMenuStyleWrapper } from '@actiontech/shared/lib/components/CustomSelect/style';
import MockSelectItemOptions from './MockSelectItemOptions';
import { ProjectSelectorProps } from './index.type';
-import { fuzzySearchAndSortByWeight } from '@actiontech/shared/lib/utils/Tool';
+import { fuzzySearchAndSortByWeight } from '@actiontech/dms-kit';
import { ArrowRightOutlined } from '@actiontech/icons';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
-
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
+import CustomSelectSearchInput from '@actiontech/dms-kit/es/components/CustomSelect/CustomSelectSearchInput';
+import { CustomSelectPopupMenuStyleWrapper } from '@actiontech/dms-kit/es/components/CustomSelect/style';
const ProjectSelector: React.FC
= ({
value,
prefix,
@@ -34,14 +29,12 @@ const ProjectSelector: React.FC = ({
const [lastActiveMenuItem, setLastActiveMenuItem] = useState<
Element | undefined
>();
-
const renderDropdown: SelectProps['dropdownRender'] = (menu) => {
const filterBindProjects = fuzzySearchAndSortByWeight(
searchValue,
bindProjects ?? [],
'project_name'
);
-
return (
<>
@@ -110,7 +103,6 @@ const ProjectSelector: React.FC = ({
>
);
};
-
return (
= ({
dropdownRender={renderDropdown}
onDropdownVisibleChange={(visible) => {
setOpen(visible);
-
if (!visible) {
setSearchValue('');
}
@@ -154,5 +145,4 @@ const ProjectSelector: React.FC = ({
/>
);
};
-
export default ProjectSelector;
diff --git a/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.type.ts b/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.type.ts
index 6f7138dce..18a9ad8f7 100644
--- a/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.type.ts
+++ b/packages/base/src/page/Nav/SideMenu/ProjectSelector/index.type.ts
@@ -1,5 +1,5 @@
+import { CustomSelectProps } from '@actiontech/dms-kit';
import { IUserBindProject } from '@actiontech/shared/lib/api/base/service/common';
-import { CustomSelectProps } from '@actiontech/shared/lib/components/CustomSelect';
export type RecentlyProjectsRecordType = Record<
string,
diff --git a/packages/base/src/page/Nav/SideMenu/ProjectSelector/style.ts b/packages/base/src/page/Nav/SideMenu/ProjectSelector/style.ts
index f6272770e..ba4ff5735 100644
--- a/packages/base/src/page/Nav/SideMenu/ProjectSelector/style.ts
+++ b/packages/base/src/page/Nav/SideMenu/ProjectSelector/style.ts
@@ -1,5 +1,5 @@
-import { CustomSelect } from '@actiontech/shared/lib/components/CustomSelect';
-import { CustomSelectPopupMenuStyleWrapper } from '@actiontech/shared/lib/components/CustomSelect/style';
+import { CustomSelect } from '@actiontech/dms-kit';
+import { CustomSelectPopupMenuStyleWrapper } from '@actiontech/dms-kit/es/components/CustomSelect/style';
import { styled } from '@mui/material/styles';
diff --git a/packages/base/src/page/Nav/SideMenu/ProjectTitle/index.tsx b/packages/base/src/page/Nav/SideMenu/ProjectTitle/index.tsx
index 44a9df5bf..f9a84162d 100644
--- a/packages/base/src/page/Nav/SideMenu/ProjectTitle/index.tsx
+++ b/packages/base/src/page/Nav/SideMenu/ProjectTitle/index.tsx
@@ -1,4 +1,4 @@
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
import useSystemConfig from '../../../../hooks/useSystemConfig';
import { useTypedNavigate } from '@actiontech/shared';
diff --git a/packages/base/src/page/Nav/SideMenu/QuickActions/__tests__/index.test.tsx b/packages/base/src/page/Nav/SideMenu/QuickActions/__tests__/index.test.tsx
index 8a6342316..1979c1a27 100644
--- a/packages/base/src/page/Nav/SideMenu/QuickActions/__tests__/index.test.tsx
+++ b/packages/base/src/page/Nav/SideMenu/QuickActions/__tests__/index.test.tsx
@@ -9,9 +9,9 @@ import {
} from '@actiontech/shared/lib/testUtil/customQuery';
import system from '@actiontech/shared/lib/testUtil/mockApi/base/system';
import { mockUsePermission } from '@actiontech/shared/lib/testUtil/mockHook/mockUsePermission';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
import { mockCurrentUserReturn } from '@actiontech/shared/lib/testUtil/mockHook/data';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
jest.mock('react-router-dom', () => {
return {
diff --git a/packages/base/src/page/Nav/SideMenu/QuickActions/index.tsx b/packages/base/src/page/Nav/SideMenu/QuickActions/index.tsx
index 3bb1b9abd..45a539897 100644
--- a/packages/base/src/page/Nav/SideMenu/QuickActions/index.tsx
+++ b/packages/base/src/page/Nav/SideMenu/QuickActions/index.tsx
@@ -6,14 +6,15 @@ import {
BookMarkOutlined
} from '@actiontech/icons';
import { QuickActionsStyleWrapper } from '../style';
-import { BasicToolTip, EmptyBox, useTypedNavigate } from '@actiontech/shared';
+import { BasicToolTip, EmptyBox } from '@actiontech/dms-kit';
+import { useTypedNavigate } from '@actiontech/shared';
import { useTranslation } from 'react-i18next';
import React, { useMemo } from 'react';
import { useLocation } from 'react-router-dom';
import classNames from 'classnames';
import system from '@actiontech/shared/lib/api/sqle/service/system';
import { useRequest } from 'ahooks';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { Space } from 'antd';
import { ModuleRedDotModuleNameEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum';
import {
@@ -21,9 +22,8 @@ import {
PermissionsConstantType,
usePermission
} from '@actiontech/shared/lib/features';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
import { IModuleRedDots } from '@actiontech/shared/lib/api/sqle/service/common';
-
type QuickActionItemType = {
key: string;
title: React.ReactNode;
@@ -32,23 +32,17 @@ type QuickActionItemType = {
permission?: PermissionsConstantType;
dot?: boolean;
};
-
type QuickActionsProps = {
systemModuleRedDots?: IModuleRedDots;
setSystemModuleRedDotsLoading: (loading: boolean) => void;
};
-
const QuickActions: React.FC = ({
setSystemModuleRedDotsLoading
}) => {
const { t } = useTranslation();
-
const navigate = useTypedNavigate();
-
const location = useLocation();
-
const { checkPagePermission } = usePermission();
-
const { data } = useRequest(
() =>
system.GetSystemModuleRedDots().then((res) => {
@@ -66,7 +60,6 @@ const QuickActions: React.FC = ({
}
}
);
-
const actionItems: Array = useMemo(() => {
const actionList: Array = [
{
@@ -107,11 +100,9 @@ const QuickActions: React.FC = ({
if (!item.permission) {
return true;
}
-
return checkPagePermission(item.permission);
});
}, [t, data, checkPagePermission]);
-
return (
@@ -138,5 +129,4 @@ const QuickActions: React.FC = ({
);
};
-
export default QuickActions;
diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/actions.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/actions.tsx
index 9c3d55fb0..a527d1fc4 100644
--- a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/actions.tsx
+++ b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/actions.tsx
@@ -4,7 +4,6 @@ import {
PermissionControl
} from '@actiontech/shared/lib/features';
import { t } from '../../../../../../locale';
-
export const CompanyNoticeModalActions = (
onClick: () => void
): Record<'edit-notice', React.ReactNode> => {
diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.test.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.test.tsx
index 483ea1683..745be2bc8 100644
--- a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.test.tsx
+++ b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.test.tsx
@@ -7,7 +7,7 @@ import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery';
import dms from '@actiontech/shared/lib/testUtil/mockApi/base/global';
import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser';
import { ModalName } from '../../../../../../data/ModalName';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
jest.mock('react-redux', () => {
return {
diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.tsx
index 45d94cb0c..f85cbec76 100644
--- a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.tsx
+++ b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/CompanyNoticeModal/index.tsx
@@ -2,46 +2,33 @@ import { useCallback, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
import { Empty, Popconfirm, Space, Spin, message } from 'antd';
-import {
- LocalStorageWrapper,
- EmptyBox,
- BasicButton,
- BasicInput
-} from '@actiontech/shared';
+import { EmptyBox, BasicButton, BasicInput } from '@actiontech/dms-kit';
+import { LocalStorageWrapper } from '@actiontech/dms-kit';
import { useBoolean, useRequest } from 'ahooks';
import CompanyNotice from '@actiontech/shared/lib/api/base/service/CompanyNotice';
import {
ResponseCode,
CompanyNoticeDisplayStatusEnum,
StorageKey
-} from '@actiontech/shared/lib/enum';
+} from '@actiontech/dms-kit';
import { initNavModalStatus } from '../../../../../../store/nav';
import { ModalName } from '../../../../../../data/ModalName';
import { IReduxState } from '../../../../../../store';
import { updateNavModalStatus } from '../../../../../../store/nav';
import { CompanyNoticeModalStyleWrapper } from '../../../style';
import { CompanyNoticeModalActions } from './actions';
-
const CompanyNoticeModal: React.FC = () => {
const { t } = useTranslation();
-
const dispatch = useDispatch();
-
const visible = useSelector(
(state) => state.nav.modalStatus[ModalName.Company_Notice]
);
-
const [value, setValue] = useState('');
-
const [canEdit, { setTrue: showEditor, setFalse: hideEditor }] = useBoolean();
-
const [hasDirtyData, setHasDirtyData] = useState(false);
-
const [submitLoading, { setTrue: startSubmit, setFalse: finishedSubmit }] =
useBoolean(false);
-
const [messageApi, contextHolder] = message.useMessage();
-
const { data, loading } = useRequest(
() =>
CompanyNotice.GetCompanyNotice().then((res) => {
@@ -50,15 +37,15 @@ const CompanyNoticeModal: React.FC = () => {
return res.data.data?.notice_str ?? '';
}
}),
- { ready: !!visible }
+ {
+ ready: !!visible
+ }
);
-
const resetAllState = useCallback(() => {
setValue('');
hideEditor();
setHasDirtyData(false);
}, [hideEditor]);
-
const handleCloseModal = useCallback(() => {
dispatch(
updateNavModalStatus({
@@ -66,20 +53,20 @@ const CompanyNoticeModal: React.FC = () => {
status: false
})
);
-
resetAllState();
}, [dispatch, resetAllState]);
-
const handleCancelEdit = useCallback(() => {
setHasDirtyData(false);
hideEditor();
setValue(data ?? '');
}, [data, hideEditor]);
-
const submit = () => {
startSubmit();
-
- CompanyNotice.UpdateCompanyNotice({ company_notice: { notice_str: value } })
+ CompanyNotice.UpdateCompanyNotice({
+ company_notice: {
+ notice_str: value
+ }
+ })
.then((res) => {
if (res.data.code === ResponseCode.SUCCESS) {
messageApi.success(t('dmsSystem.notification.successMessage'));
@@ -88,7 +75,6 @@ const CompanyNoticeModal: React.FC = () => {
})
.finally(finishedSubmit);
};
-
useEffect(() => {
if (visible) {
LocalStorageWrapper.set(
@@ -97,7 +83,6 @@ const CompanyNoticeModal: React.FC = () => {
);
}
}, [visible]);
-
useEffect(() => {
dispatch(
initNavModalStatus({
@@ -107,9 +92,7 @@ const CompanyNoticeModal: React.FC = () => {
})
);
}, [dispatch]);
-
const actions = CompanyNoticeModalActions(showEditor);
-
return (
{
okText={t('common.ok')}
cancelText={t('common.cancel')}
onConfirm={handleCancelEdit}
- okButtonProps={{ disabled: submitLoading }}
+ okButtonProps={{
+ disabled: submitLoading
+ }}
>
{t('common.cancel')}
@@ -195,5 +180,4 @@ const CompanyNoticeModal: React.FC = () => {
);
};
-
export default CompanyNoticeModal;
diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/VersionModal/BasicVersionModal.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/VersionModal/BasicVersionModal.tsx
index 244357a94..01b23f736 100644
--- a/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/VersionModal/BasicVersionModal.tsx
+++ b/packages/base/src/page/Nav/SideMenu/UserMenu/Modal/VersionModal/BasicVersionModal.tsx
@@ -1,14 +1,13 @@
-import { BasicButton, BasicModal, EmptyBox } from '@actiontech/shared';
+import { BasicButton, BasicModal, EmptyBox } from '@actiontech/dms-kit';
import { useTranslation } from 'react-i18next';
import { Space, Typography } from 'antd';
-import { DMS_DEFAULT_WEB_TITLE } from '@actiontech/shared/lib/data/common';
+import { DMS_DEFAULT_WEB_TITLE } from '@actiontech/dms-kit';
import { UI_VERSION } from '../../../../../../scripts/version';
import { VersionModalFeatureContentStyleWrapper } from '../../../style';
import useVersionInfo from '../../hooks/useVersionInfo';
import React, { useEffect } from 'react';
import { VersionEnum } from '../../index.enum';
import { BasicVersionModalProps } from '../../index.type';
-
const BasicVersionModal: React.FC = ({
open,
width,
@@ -18,15 +17,12 @@ const BasicVersionModal: React.FC = ({
setVersionModalClose
}) => {
const { t } = useTranslation();
-
const { sqleVersion, dmsVersion, updateVersionInfo } = useVersionInfo();
-
useEffect(() => {
if (open) {
updateVersionInfo();
}
}, [open, updateVersionInfo]);
-
return (
= ({
);
};
-
export default BasicVersionModal;
diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/components/ContextMenu/index.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/components/ContextMenu/index.tsx
index a6e21fe38..dfd809e7e 100644
--- a/packages/base/src/page/Nav/SideMenu/UserMenu/components/ContextMenu/index.tsx
+++ b/packages/base/src/page/Nav/SideMenu/UserMenu/components/ContextMenu/index.tsx
@@ -1,6 +1,6 @@
import { Popover } from 'antd';
import { ContextMenuProps } from './index.type';
-import { PopoverInnerStyleWrapper } from '@actiontech/shared/lib/styleWrapper/nav';
+import { PopoverInnerStyleWrapper } from '@actiontech/dms-kit';
import { useControllableValue } from 'ahooks';
import classNames from 'classnames';
diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/components/UserNavigate.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/components/UserNavigate.tsx
index 06c142bde..82c9bb38c 100644
--- a/packages/base/src/page/Nav/SideMenu/UserMenu/components/UserNavigate.tsx
+++ b/packages/base/src/page/Nav/SideMenu/UserMenu/components/UserNavigate.tsx
@@ -7,28 +7,29 @@ import {
ArrowRightOutlined
} from '@actiontech/icons';
import { useTranslation } from 'react-i18next';
-import { CustomAvatarStyleWrapper } from '@actiontech/shared/lib/components/CustomAvatar/style';
+import { CustomAvatarStyleWrapper } from '@actiontech/dms-kit/es/components/CustomAvatar/style';
import { useState } from 'react';
import { useUserInfo } from '@actiontech/shared/lib/features';
import Session from '@actiontech/shared/lib/api/base/service/Session';
import CompanyNotice from '@actiontech/shared/lib/api/base/service/CompanyNotice';
-import { ResponseCode, SupportLanguage } from '@actiontech/shared/lib/enum';
+import { LocalStorageWrapper, ResponseCode } from '@actiontech/dms-kit';
+import { SupportLanguage } from '@actiontech/dms-kit';
import { useDispatch } from 'react-redux';
import { updateNavModalStatus } from '../../../../../store/nav';
import { ModalName } from '../../../../../data/ModalName';
-import { LocalStorageWrapper, useTypedNavigate } from '@actiontech/shared';
+import { useTypedNavigate } from '@actiontech/shared';
import {
CompanyNoticeDisplayStatusEnum,
StorageKey
-} from '@actiontech/shared/lib/enum';
+} from '@actiontech/dms-kit';
import { useBoolean, useRequest } from 'ahooks';
import { ContextMenuItem } from './ContextMenu/index.type';
import ContextMenu from './ContextMenu';
import User from '@actiontech/shared/lib/api/base/service/User';
import { updateLanguage as updateReduxLanguage } from '../../../../../../../base/src/store/user';
import { Radio } from 'antd';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
-import useRecentlySelectedZone from '../../../../../hooks/useRecentlySelectedZone';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
+import useRecentlySelectedZone from '@actiontech/dms-kit/es/features/useRecentlySelectedZone';
import { updateUserOperationPermissions } from '../../../../../store/permission';
type Props = {
@@ -51,7 +52,9 @@ const UserNavigate: React.FC = ({
const [open, setOpen] = useState(false);
//# if [ee]
- const { clearRecentlySelectedZone } = useRecentlySelectedZone();
+ const { clearRecentlySelectedZone } = useRecentlySelectedZone({
+ manualInit: true
+ });
//# endif
const logout = () => {
diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.ce.test.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.ce.test.tsx
index 9480ac86d..b0a8cccce 100644
--- a/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.ce.test.tsx
+++ b/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.ce.test.tsx
@@ -9,11 +9,11 @@ import { act, cleanup, fireEvent, screen } from '@testing-library/react';
import { baseSuperRender } from '../../../../../../testUtils/superRender';
import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery';
import dms from '@actiontech/shared/lib/testUtil/mockApi/base/global';
-import { LocalStorageWrapper } from '@actiontech/shared';
+import { LocalStorageWrapper } from '@actiontech/dms-kit';
import {
CompanyNoticeDisplayStatusEnum,
SupportLanguage
-} from '@actiontech/shared/lib/enum';
+} from '@actiontech/dms-kit';
import { mockUseUserInfo } from '@actiontech/shared/lib/testUtil/mockHook/mockUseUserInfo';
jest.mock('react-redux', () => {
diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.test.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.test.tsx
index 20deb3fb3..c824b3f66 100644
--- a/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.test.tsx
+++ b/packages/base/src/page/Nav/SideMenu/UserMenu/components/__tests__/UserNavigate.test.tsx
@@ -5,12 +5,12 @@ import { act, cleanup, fireEvent, screen } from '@testing-library/react';
import { baseSuperRender } from '../../../../../../testUtils/superRender';
import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery';
import dms from '@actiontech/shared/lib/testUtil/mockApi/base/global';
-import { LocalStorageWrapper } from '@actiontech/shared';
+import { LocalStorageWrapper } from '@actiontech/dms-kit';
import { ModalName } from '../../../../../../data/ModalName';
import {
CompanyNoticeDisplayStatusEnum,
SupportLanguage
-} from '@actiontech/shared/lib/enum';
+} from '@actiontech/dms-kit';
import { mockUseUserInfo } from '@actiontech/shared/lib/testUtil/mockHook/mockUseUserInfo';
import account from '@actiontech/shared/lib/testUtil/mockApi/base/account';
import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi';
diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/index.ce.test.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/index.ce.test.tsx
index 3f4674968..6a331a6be 100644
--- a/packages/base/src/page/Nav/SideMenu/UserMenu/index.ce.test.tsx
+++ b/packages/base/src/page/Nav/SideMenu/UserMenu/index.ce.test.tsx
@@ -5,7 +5,7 @@
import UserMenu from '.';
import { cleanup } from '@testing-library/react';
import { SupportTheme } from 'sqle/src/theme';
-import { SupportLanguage } from '@actiontech/shared/lib/enum';
+import { SupportLanguage } from '@actiontech/dms-kit';
import { mockUsePermission } from '@actiontech/shared/lib/testUtil/mockHook/mockUsePermission';
import { shallow } from 'enzyme';
import toJson from 'enzyme-to-json';
diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/index.test.tsx b/packages/base/src/page/Nav/SideMenu/UserMenu/index.test.tsx
index f7a784288..6ad98ed24 100644
--- a/packages/base/src/page/Nav/SideMenu/UserMenu/index.test.tsx
+++ b/packages/base/src/page/Nav/SideMenu/UserMenu/index.test.tsx
@@ -1,7 +1,7 @@
import UserMenu from '.';
import { cleanup } from '@testing-library/react';
import { SupportTheme } from 'sqle/src/theme';
-import { SupportLanguage } from '@actiontech/shared/lib/enum';
+import { SupportLanguage } from '@actiontech/dms-kit';
import { mockUsePermission } from '@actiontech/shared/lib/testUtil/mockHook/mockUsePermission';
import { shallow } from 'enzyme';
import toJson from 'enzyme-to-json';
diff --git a/packages/base/src/page/Nav/SideMenu/UserMenu/index.type.ts b/packages/base/src/page/Nav/SideMenu/UserMenu/index.type.ts
index 60d4dd285..4ba8e9131 100644
--- a/packages/base/src/page/Nav/SideMenu/UserMenu/index.type.ts
+++ b/packages/base/src/page/Nav/SideMenu/UserMenu/index.type.ts
@@ -1,4 +1,4 @@
-import { SupportLanguage, SupportTheme } from '@actiontech/shared/lib/enum';
+import { SupportLanguage, SupportTheme } from '@actiontech/dms-kit';
import { VersionEnum } from './index.enum';
export type UserMenuProps = {
diff --git a/packages/base/src/page/Nav/SideMenu/__tests__/index.ce.test.tsx b/packages/base/src/page/Nav/SideMenu/__tests__/index.ce.test.tsx
index c84fbd26a..40fb44a18 100644
--- a/packages/base/src/page/Nav/SideMenu/__tests__/index.ce.test.tsx
+++ b/packages/base/src/page/Nav/SideMenu/__tests__/index.ce.test.tsx
@@ -9,12 +9,14 @@ import { mockSystemConfig } from '../../../../testUtils/mockHooks/mockSystemConf
import CESideMenu from '../index.ce';
import { act } from '@testing-library/react';
import system from '@actiontech/shared/lib/testUtil/mockApi/base/system';
+import { mockUseUserInfo } from '@actiontech/shared/lib/testUtil/mockHook/mockUseUserInfo';
describe('test base/Nav/SideMenu/index.ce', () => {
let getSystemModuleRedDotsSpy: jest.SpyInstance;
beforeEach(() => {
mockSystemConfig();
mockUseCurrentUser();
+ mockUseUserInfo();
mockUsePermission(undefined, {
useSpyOnMockHooks: true
});
diff --git a/packages/base/src/page/Nav/SideMenu/__tests__/index.test.tsx b/packages/base/src/page/Nav/SideMenu/__tests__/index.test.tsx
index fb5cff426..1a6b83a51 100644
--- a/packages/base/src/page/Nav/SideMenu/__tests__/index.test.tsx
+++ b/packages/base/src/page/Nav/SideMenu/__tests__/index.test.tsx
@@ -21,6 +21,8 @@ import { mockUseRecentlySelectedZone } from '../../../../testUtils/mockHooks/moc
import gateway from '@actiontech/shared/lib/testUtil/mockApi/base/gateway';
import { mockGatewayTipsData } from '@actiontech/shared/lib/testUtil/mockApi/base/gateway/data';
import userCenter from '@actiontech/shared/lib/testUtil/mockApi/base/userCenter';
+import sharedEmitterKey from '@actiontech/dms-kit/es/data/EmitterKey';
+import { eventEmitter as sharedEventEmitter } from '@actiontech/dms-kit/es/utils/EventEmitter';
jest.mock('react-redux', () => {
return {
diff --git a/packages/base/src/page/Nav/SideMenu/__tests__/useRecentlyOpenedProjects.test.ts b/packages/base/src/page/Nav/SideMenu/__tests__/useRecentlyOpenedProjects.test.ts
index f8bab5b98..a6a3dfad2 100644
--- a/packages/base/src/page/Nav/SideMenu/__tests__/useRecentlyOpenedProjects.test.ts
+++ b/packages/base/src/page/Nav/SideMenu/__tests__/useRecentlyOpenedProjects.test.ts
@@ -1,8 +1,8 @@
-import { LocalStorageWrapper } from '@actiontech/shared';
+import { LocalStorageWrapper } from '@actiontech/dms-kit';
import { act, renderHook } from '@testing-library/react';
import useRecentlyOpenedProjects from '../useRecentlyOpenedProjects';
import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser';
-import { StorageKey } from '@actiontech/shared/lib/enum';
+import { StorageKey } from '@actiontech/dms-kit';
import { mockCurrentUserReturn } from '@actiontech/shared/lib/testUtil/mockHook/data';
import eventEmitter from '../../../../utils/EventEmitter';
import EmitterKey from '../../../../data/EmitterKey';
diff --git a/packages/base/src/page/Nav/SideMenu/index.ce.tsx b/packages/base/src/page/Nav/SideMenu/index.ce.tsx
index e04fd36c6..4268e6446 100644
--- a/packages/base/src/page/Nav/SideMenu/index.ce.tsx
+++ b/packages/base/src/page/Nav/SideMenu/index.ce.tsx
@@ -1,12 +1,9 @@
-import {
- DEFAULT_PROJECT_ID,
- DEFAULT_PROJECT_NAME
-} from '@actiontech/shared/lib/data/common';
+import { DEFAULT_PROJECT_ID, DEFAULT_PROJECT_NAME } from '@actiontech/dms-kit';
import { Typography, Spin } from 'antd';
import ProjectTitle from './ProjectTitle';
import UserMenu from './UserMenu';
import { CEModeProjectWrapperStyleWrapper } from './style';
-import { SideMenuStyleWrapper } from '@actiontech/shared/lib/styleWrapper/nav';
+import { SideMenuStyleWrapper } from '@actiontech/dms-kit';
import { useCurrentUser } from '@actiontech/shared/lib/features';
import MenuList from './MenuList';
import { FlagFilled } from '@actiontech/icons';
diff --git a/packages/base/src/page/Nav/SideMenu/index.tsx b/packages/base/src/page/Nav/SideMenu/index.tsx
index 3e4586973..edf21c777 100644
--- a/packages/base/src/page/Nav/SideMenu/index.tsx
+++ b/packages/base/src/page/Nav/SideMenu/index.tsx
@@ -1,7 +1,7 @@
import { useCallback, useEffect, useMemo, useState } from 'react';
import { SelectProps, Spin } from 'antd';
import { useRequest } from 'ahooks';
-import { SideMenuStyleWrapper } from '@actiontech/shared/lib/styleWrapper/nav';
+import { SideMenuStyleWrapper } from '@actiontech/dms-kit';
import ProjectSelector from './ProjectSelector';
import useRecentlyOpenedProjects from './useRecentlyOpenedProjects';
import { useCurrentUser, usePermission } from '@actiontech/shared/lib/features';
@@ -18,45 +18,42 @@ import { updateBindProjects } from '../../../store/user';
import { updateAvailabilityZoneTips } from '../../../store/availabilityZone';
import { FlagFilled, LockOutlined } from '@actiontech/icons';
import QuickActions from './QuickActions';
-import { CustomSelectProps, useTypedNavigate } from '@actiontech/shared';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { useTypedNavigate } from '@actiontech/shared';
+import { CustomSelectProps, ROUTE_PATHS } from '@actiontech/dms-kit';
import AvailabilityZoneSelector from './AvailabilityZoneSelector';
import { ProjectTitleStyleWrapper } from './style';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
-import { EmptyBox } from '@actiontech/shared';
-import useRecentlySelectedZone from '../../../hooks/useRecentlySelectedZone';
+import { ResponseCode } from '@actiontech/dms-kit';
+import { EmptyBox } from '@actiontech/dms-kit';
+import useRecentlySelectedZone from '@actiontech/dms-kit/es/features/useRecentlySelectedZone';
import useFetchPermissionData from '../../../hooks/useFetchPermissionData';
import { updateUserOperationPermissions } from '../../../store/permission';
const SideMenu: React.FC = () => {
const navigate = useTypedNavigate();
const dispatch = useDispatch();
-
const { userOperationPermissions } = usePermission();
-
const { fetchUserPermissions, isUserPermissionsLoading } =
useFetchPermissionData();
-
- const { verifyRecentlySelectedZoneRecord } = useRecentlySelectedZone();
-
+ const {
+ verifyRecentlySelectedZoneRecord,
+ availabilityZone,
+ updateRecentlySelectedZone
+ } = useRecentlySelectedZone();
const [systemModuleRedDotsLoading, setSystemModuleRedDotsLoading] =
useState(false);
-
const { username, theme, updateTheme, bindProjects, language, userId } =
useCurrentUser();
-
const { recentlyProjects, currentProjectID, getRecentlyProjectId } =
useRecentlyOpenedProjects();
-
const {
data: projectList,
loading: getProjectListLoading,
refresh: refreshProjectList
} = useRequest(
() =>
- DmsApi.ProjectService.ListProjectsV2({ page_size: 9999 }).then(
- (res) => res?.data?.data ?? []
- ),
+ DmsApi.ProjectService.ListProjectsV2({
+ page_size: 9999
+ }).then((res) => res?.data?.data ?? []),
{
refreshDeps: [currentProjectID],
onSuccess: (res) => {
@@ -64,10 +61,11 @@ const SideMenu: React.FC = () => {
const archived =
res.find((project) => project.uid === item.project_id)?.archived ??
false;
-
- return { ...item, archived };
+ return {
+ ...item,
+ archived
+ };
});
-
dispatch(
updateBindProjects({
bindProjects: newBindProjects
@@ -93,23 +91,22 @@ const SideMenu: React.FC = () => {
onSuccess: (res) => {
verifyRecentlySelectedZoneRecord(res ?? []);
dispatch(
- updateAvailabilityZoneTips({ availabilityZoneTips: res ?? [] })
+ updateAvailabilityZoneTips({
+ availabilityZoneTips: res ?? []
+ })
);
}
}
);
-
const getProjectArchived = useCallback(
(itemProjectId: string) =>
(projectList ?? []).find((project) => project.uid === itemProjectId)
?.archived ?? false,
[projectList]
);
-
const projectSelectorOptions = useMemo(() => {
return recentlyProjects.map((v) => {
const isProjectArchived = getProjectArchived(v?.project_id ?? '');
-
return {
value: v.project_id,
label: (
@@ -129,12 +126,10 @@ const SideMenu: React.FC = () => {
};
});
}, [getProjectArchived, recentlyProjects]);
-
const bindProjectsWithArchiveStatus = useMemo(
() =>
bindProjects.map((v) => {
const isProjectArchived = getProjectArchived(v?.project_id ?? '');
-
return {
...v,
archived: isProjectArchived
@@ -142,20 +137,19 @@ const SideMenu: React.FC = () => {
}),
[bindProjects, getProjectArchived]
);
-
const isCurrentProjectArchived = useMemo(
() => getProjectArchived(currentProjectID ?? ''),
[currentProjectID, getProjectArchived]
);
-
const projectSelectorChangeHandle: CustomSelectProps['onChange'] = (
projectID
) => {
navigate(ROUTE_PATHS.SQLE.PROJECT_OVERVIEW.index, {
- params: { projectID }
+ params: {
+ projectID
+ }
});
};
-
useEffect(() => {
const id = getRecentlyProjectId();
if (!!id && !userOperationPermissions && !isUserPermissionsLoading) {
@@ -173,13 +167,11 @@ const SideMenu: React.FC = () => {
userOperationPermissions,
isUserPermissionsLoading
]);
-
useEffect(() => {
const { unsubscribe } = EventEmitter.subscribe(
EmitterKey.Refresh_Availability_Zone_Selector,
refreshZoneTips
);
-
return unsubscribe;
}, [refreshZoneTips]);
@@ -188,7 +180,6 @@ const SideMenu: React.FC = () => {
EmitterKey.DMS_Sync_Project_Archived_Status,
refreshProjectList
);
-
return unsubscribe;
}, [refreshProjectList]); // 防止刷新时,项目列表未更新,导致项目列表不显示
@@ -205,7 +196,11 @@ const SideMenu: React.FC = () => {
-
+
{/* #if [sqle] */}
@@ -239,5 +234,4 @@ const SideMenu: React.FC = () => {
);
};
-
export default SideMenu;
diff --git a/packages/base/src/page/Nav/SideMenu/style.ts b/packages/base/src/page/Nav/SideMenu/style.ts
index 7ffd5b506..4a70b1499 100644
--- a/packages/base/src/page/Nav/SideMenu/style.ts
+++ b/packages/base/src/page/Nav/SideMenu/style.ts
@@ -1,14 +1,12 @@
import { styled } from '@mui/material/styles';
import { Space } from 'antd';
-import { BasicModal } from '@actiontech/shared';
+import { BasicModal } from '@actiontech/dms-kit';
import { NotificationFilled } from '@ant-design/icons';
-
export const VersionModalFeatureContentStyleWrapper = styled(Space)`
& .ant-space-item {
width: 100%;
}
`;
-
export const CEModeProjectWrapperStyleWrapper = styled('div')`
display: flex;
width: 100%;
@@ -37,7 +35,6 @@ export const CEModeProjectWrapperStyleWrapper = styled('div')`
line-height: 20px;
}
`;
-
export const CompanyNoticeModalStyleWrapper = styled(BasicModal)`
&.company-notice-modal {
.ant-modal-body {
@@ -45,14 +42,12 @@ export const CompanyNoticeModalStyleWrapper = styled(BasicModal)`
}
}
`;
-
export const CompanyNoticeIconStyleWrapper = styled(NotificationFilled)`
color: ${({ theme }) =>
theme.sharedTheme.basic.colorFontGrayByWhite} !important;
width: 16px;
height: 16px;
`;
-
export const QuickActionsStyleWrapper = styled('div')`
width: 100%;
margin-bottom: 8px;
@@ -105,7 +100,6 @@ export const QuickActionsStyleWrapper = styled('div')`
}
}
`;
-
export const ProjectTitleStyleWrapper = styled('div')`
display: flex;
align-items: center;
diff --git a/packages/base/src/page/Nav/SideMenu/useRecentlyOpenedProjects.ts b/packages/base/src/page/Nav/SideMenu/useRecentlyOpenedProjects.ts
index 44d09f528..7cf328045 100644
--- a/packages/base/src/page/Nav/SideMenu/useRecentlyOpenedProjects.ts
+++ b/packages/base/src/page/Nav/SideMenu/useRecentlyOpenedProjects.ts
@@ -1,5 +1,5 @@
-import { LocalStorageWrapper } from '@actiontech/shared';
-import { StorageKey } from '@actiontech/shared/lib/enum';
+import { LocalStorageWrapper } from '@actiontech/dms-kit';
+import { StorageKey } from '@actiontech/dms-kit';
import { useCurrentUser } from '@actiontech/shared/lib/features';
import { cloneDeep, remove } from 'lodash';
import { useCallback, useEffect, useMemo, useState } from 'react';
diff --git a/packages/base/src/page/Nav/UserGuideModal/UserGuideContent.tsx b/packages/base/src/page/Nav/UserGuideModal/UserGuideContent.tsx
new file mode 100644
index 000000000..607c10ff1
--- /dev/null
+++ b/packages/base/src/page/Nav/UserGuideModal/UserGuideContent.tsx
@@ -0,0 +1,56 @@
+import { Radio } from 'antd';
+import type { RadioGroupProps } from 'antd';
+import { GetUserSystemEnum } from '@actiontech/shared/lib/api/base/service/common.enum';
+import React from 'react';
+import { UserGuideModalStyleWrapper } from './style';
+import { useTranslation } from 'react-i18next';
+
+type UserGuideContentProps = {
+ system: GetUserSystemEnum;
+ onSystemChange: RadioGroupProps['onChange'];
+ onConfirm: () => void;
+ loading: boolean;
+};
+
+const UserGuideContent: React.FC = ({
+ system,
+ onSystemChange
+}) => {
+ const { t } = useTranslation();
+ const systemOptions = [
+ {
+ value: GetUserSystemEnum.WORKBENCH,
+ label: t('dmsMenu.userGuide.sqlWorkbench.label'),
+ description: t('dmsMenu.userGuide.sqlWorkbench.description')
+ },
+ {
+ value: GetUserSystemEnum.MANAGEMENT,
+ label: t('dmsMenu.userGuide.adminPanel.label'),
+ description: t('dmsMenu.userGuide.adminPanel.description')
+ }
+ ];
+ return (
+
+
+ {systemOptions.map((option) => (
+
+
+
{option.label}
+
{option.description}
+
+
+ ))}
+
+
+ );
+};
+
+export default UserGuideContent;
diff --git a/packages/base/src/page/Nav/UserGuideModal/UserGuideModal.tsx b/packages/base/src/page/Nav/UserGuideModal/UserGuideModal.tsx
new file mode 100644
index 000000000..48cf16d22
--- /dev/null
+++ b/packages/base/src/page/Nav/UserGuideModal/UserGuideModal.tsx
@@ -0,0 +1,126 @@
+import { useState } from 'react';
+import { useTranslation } from 'react-i18next';
+import { BasicButton, BasicModal } from '@actiontech/dms-kit';
+import { useCurrentUser } from '@actiontech/shared/lib/features';
+import { UserGuideModalButtonContainer } from './style';
+import {
+ GetUserSystemEnum,
+ UpdateCurrentUserSystemEnum
+} from '@actiontech/shared/lib/api/base/service/common.enum';
+import { DmsApi } from '@actiontech/shared/lib/api';
+import { ResponseCode } from '@actiontech/dms-kit';
+import { useRequest } from 'ahooks';
+import { useDispatch } from 'react-redux';
+import { updateSystemPreference } from '../../../store/user';
+import UserGuideContent from './UserGuideContent';
+import { Typography } from 'antd';
+import useRecentlySelectedZone from '@actiontech/dms-kit/es/features/useRecentlySelectedZone';
+import { useSelector } from 'react-redux';
+import { IReduxState } from '../../../store';
+
+const UserGuideModal: React.FC = () => {
+ const { t } = useTranslation();
+
+ const { systemPreference } = useCurrentUser();
+
+ const dispatch = useDispatch();
+
+ const availabilityZoneTips = useSelector(
+ (state: IReduxState) => state.availabilityZone.availabilityZoneTips
+ );
+
+ const { availabilityZone, updateRecentlySelectedZone } =
+ useRecentlySelectedZone();
+
+ const [system, setSystem] = useState(GetUserSystemEnum.MANAGEMENT);
+
+ const { loading: openCloudBeaverLoading, run: openCloudBeaver } = useRequest(
+ () => {
+ return DmsApi.CloudBeaverService.GetSQLQueryConfiguration().then(
+ (res) => {
+ if (res.data.code === ResponseCode.SUCCESS) {
+ return res.data.data;
+ }
+ }
+ );
+ },
+ {
+ onSuccess: (res) => {
+ if (
+ res?.enable_sql_query &&
+ res.sql_query_root_uri &&
+ res.sql_query_root_uri !== location.pathname
+ ) {
+ // 如果当前设置了可用区 并且没有最近选择的可用区记录 则设置一个默认的可用区
+ if (!!availabilityZoneTips.length && !availabilityZone) {
+ updateRecentlySelectedZone(availabilityZoneTips[0]);
+ }
+
+ // res.sql_query_root_uri !== location.pathname 防止无限刷新
+ // 因为sql_query_root_uri是不携带origin的,只有pathname。所以开发环境localhost不可以直接跳转到CB
+ // #if [PROD]
+ window.location.href = res.sql_query_root_uri;
+ // #endif
+ }
+ },
+ ready: systemPreference === GetUserSystemEnum.WORKBENCH
+ }
+ );
+
+ const {
+ loading: updateCurrentUserSystemLoading,
+ run: updateCurrentUserSystem
+ } = useRequest(
+ () =>
+ DmsApi.UserService.UpdateCurrentUser({
+ current_user: {
+ system: system as unknown as UpdateCurrentUserSystemEnum
+ }
+ }).then((res) => {
+ if (res.data.code === ResponseCode.SUCCESS) {
+ if (system === GetUserSystemEnum.WORKBENCH) {
+ openCloudBeaver();
+ }
+ }
+ }),
+ {
+ manual: true,
+ onFinally: () => {
+ dispatch(updateSystemPreference({ systemPreference: system }));
+ }
+ }
+ );
+
+ return (
+
+ setSystem(e.target.value)}
+ onConfirm={updateCurrentUserSystem}
+ loading={updateCurrentUserSystemLoading || openCloudBeaverLoading}
+ />
+
+ {t('dmsMenu.userGuide.description')}
+
+
+
+ {t('dmsMenu.userGuide.confirmButton')}
+
+
+
+ );
+};
+
+export default UserGuideModal;
diff --git a/packages/base/src/page/Nav/UserGuideModal/__tests__/UserGuideModal.test.tsx b/packages/base/src/page/Nav/UserGuideModal/__tests__/UserGuideModal.test.tsx
new file mode 100644
index 000000000..aab173f68
--- /dev/null
+++ b/packages/base/src/page/Nav/UserGuideModal/__tests__/UserGuideModal.test.tsx
@@ -0,0 +1,207 @@
+import { fireEvent, screen, act } from '@testing-library/react';
+import { superRender } from '@actiontech/shared/lib/testUtil/superRender';
+import {
+ mockUseCurrentUser,
+ baseMockApi,
+ createSpySuccessResponse
+} from '@actiontech/shared/lib/testUtil';
+import { useDispatch, useSelector } from 'react-redux';
+import { GetUserSystemEnum } from '@actiontech/shared/lib/api/base/service/common.enum';
+import { updateSystemPreference } from '../../../../store/user';
+import UserGuideModal from '../UserGuideModal';
+import { mockUseRecentlySelectedZone } from '../../../../testUtils/mockHooks/mockUseRecentlySelectedZone';
+
+jest.mock('react-redux', () => ({
+ ...jest.requireActual('react-redux'),
+ useDispatch: jest.fn(),
+ useSelector: jest.fn()
+}));
+
+const originLocation = window.location;
+Object.defineProperty(window, 'location', {
+ value: {
+ ...originLocation
+ },
+ writable: true
+});
+
+describe('UserGuideModal', () => {
+ const mockDispatch = jest.fn();
+ let getSQLQueryConfigurationSpy: jest.SpyInstance;
+ let updateCurrentUserSpy: jest.SpyInstance;
+
+ beforeEach(() => {
+ mockUseCurrentUser();
+ getSQLQueryConfigurationSpy = baseMockApi.cloudBeaver.getSqlQueryUrl();
+ updateCurrentUserSpy = baseMockApi.userCenter.updateCurrentUser();
+ (useDispatch as jest.Mock).mockImplementation(() => mockDispatch);
+ (useSelector as jest.Mock).mockImplementation((selector) => {
+ return selector({
+ availabilityZone: {
+ availabilityZoneTips: []
+ }
+ });
+ });
+ mockUseRecentlySelectedZone();
+ jest.useFakeTimers();
+ });
+
+ afterEach(() => {
+ jest.useRealTimers();
+ jest.clearAllMocks();
+ });
+
+ it('should render correctly when systemPreference is undefined', async () => {
+ mockUseCurrentUser({ systemPreference: undefined });
+ const { baseElement } = superRender();
+ expect(baseElement).toMatchSnapshot();
+ expect(screen.getByText('请选择默认进入的页面')).toBeInTheDocument();
+ });
+
+ it('should not render modal when systemPreference is MANAGEMENT', () => {
+ mockUseCurrentUser({
+ systemPreference: GetUserSystemEnum.MANAGEMENT
+ });
+ superRender();
+
+ expect(screen.queryByText('请选择默认进入的页面')).not.toBeInTheDocument();
+ });
+
+ it('should open CloudBeaver automatically when systemPreference is WORKBENCH', async () => {
+ mockUseCurrentUser({
+ systemPreference: GetUserSystemEnum.WORKBENCH
+ });
+
+ getSQLQueryConfigurationSpy.mockImplementation(() =>
+ createSpySuccessResponse({
+ data: {
+ enable_sql_query: true,
+ sql_query_root_uri: '/cloudbeaver'
+ }
+ })
+ );
+
+ superRender();
+
+ await act(async () => jest.advanceTimersByTime(3000));
+
+ expect(getSQLQueryConfigurationSpy).toHaveBeenCalled();
+ });
+
+ it('should set default zone when zone options is not null and availabilityZone is undefined', async () => {
+ mockUseCurrentUser({
+ systemPreference: GetUserSystemEnum.WORKBENCH
+ });
+
+ (useSelector as jest.Mock).mockImplementation((selector) => {
+ return selector({
+ availabilityZone: {
+ availabilityZoneTips: [
+ {
+ name: 'test',
+ uid: 'test'
+ }
+ ]
+ }
+ });
+ });
+
+ const mockUpdateRecentlySelectedZone = jest.fn();
+ mockUseRecentlySelectedZone({
+ availabilityZone: undefined,
+ updateRecentlySelectedZone: mockUpdateRecentlySelectedZone
+ });
+
+ getSQLQueryConfigurationSpy.mockImplementation(() =>
+ createSpySuccessResponse({
+ data: {
+ enable_sql_query: true,
+ sql_query_root_uri: '/cloudbeaver'
+ }
+ })
+ );
+
+ superRender();
+
+ await act(async () => jest.advanceTimersByTime(3000));
+
+ expect(getSQLQueryConfigurationSpy).toHaveBeenCalled();
+ expect(mockUpdateRecentlySelectedZone).toHaveBeenCalledTimes(1);
+ });
+
+ it('should not open CloudBeaver automatically when systemPreference is WORKBENCH and sql_query_root_uri is the same as location.pathname', async () => {
+ Object.defineProperty(window, 'location', {
+ value: {
+ ...originLocation,
+ pathname: '/cloudbeaver'
+ },
+ writable: true
+ });
+
+ mockUseCurrentUser({
+ systemPreference: GetUserSystemEnum.WORKBENCH
+ });
+
+ getSQLQueryConfigurationSpy.mockImplementation(() =>
+ createSpySuccessResponse({
+ data: {
+ enable_sql_query: true,
+ sql_query_root_uri: '/cloudbeaver'
+ }
+ })
+ );
+
+ superRender();
+
+ await act(async () => jest.advanceTimersByTime(3000));
+
+ expect(getSQLQueryConfigurationSpy).toHaveBeenCalled();
+ });
+
+ it('should call updateCurrentUser API when confirm button is clicked with MANAGEMENT system', async () => {
+ mockUseCurrentUser({ systemPreference: undefined });
+
+ superRender();
+
+ const confirmButton = screen.getByText('确认并进入');
+ fireEvent.click(confirmButton);
+
+ await act(async () => jest.advanceTimersByTime(3000));
+
+ expect(updateCurrentUserSpy).toHaveBeenCalledWith({
+ current_user: {
+ system: GetUserSystemEnum.MANAGEMENT
+ }
+ });
+
+ expect(mockDispatch).toHaveBeenCalledWith(
+ updateSystemPreference({ systemPreference: GetUserSystemEnum.MANAGEMENT })
+ );
+ });
+
+ it('should call updateCurrentUser API and CloudBeaver API when confirm button is clicked with WORKBENCH system', async () => {
+ mockUseCurrentUser({ systemPreference: undefined });
+
+ superRender();
+
+ const workbenchRadio = screen.getByDisplayValue(
+ GetUserSystemEnum.WORKBENCH
+ );
+ fireEvent.click(workbenchRadio);
+
+ const confirmButton = screen.getByText('确认并进入');
+ fireEvent.click(confirmButton);
+
+ await act(async () => jest.advanceTimersByTime(3000));
+
+ expect(updateCurrentUserSpy).toHaveBeenCalledWith({
+ current_user: {
+ system: GetUserSystemEnum.WORKBENCH
+ }
+ });
+
+ expect(mockDispatch).toHaveBeenCalledWith(
+ updateSystemPreference({ systemPreference: GetUserSystemEnum.WORKBENCH })
+ );
+ });
+});
diff --git a/packages/base/src/page/Nav/UserGuideModal/__tests__/__snapshots__/UserGuideModal.test.tsx.snap b/packages/base/src/page/Nav/UserGuideModal/__tests__/__snapshots__/UserGuideModal.test.tsx.snap
new file mode 100644
index 000000000..bf02e8240
--- /dev/null
+++ b/packages/base/src/page/Nav/UserGuideModal/__tests__/__snapshots__/UserGuideModal.test.tsx.snap
@@ -0,0 +1,147 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`UserGuideModal should render correctly when systemPreference is undefined 1`] = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 您可以随时在「个人中心」-「登录设置」中修改此配置。
+
+
+
+
+
+
+
+
+
+
+
+
+`;
diff --git a/packages/base/src/page/Nav/UserGuideModal/__tests__/__snapshots__/index.test.tsx.snap b/packages/base/src/page/Nav/UserGuideModal/__tests__/__snapshots__/index.test.tsx.snap
new file mode 100644
index 000000000..953a293e8
--- /dev/null
+++ b/packages/base/src/page/Nav/UserGuideModal/__tests__/__snapshots__/index.test.tsx.snap
@@ -0,0 +1,147 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`UserGuide should render modal when location not form ODC 1`] = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 您可以随时在「个人中心」-「登录设置」中修改此配置。
+
+
+
+
+
+
+
+
+
+
+
+
+`;
diff --git a/packages/base/src/page/Nav/UserGuideModal/__tests__/index.test.tsx b/packages/base/src/page/Nav/UserGuideModal/__tests__/index.test.tsx
new file mode 100644
index 000000000..f8eb2eb33
--- /dev/null
+++ b/packages/base/src/page/Nav/UserGuideModal/__tests__/index.test.tsx
@@ -0,0 +1,61 @@
+import { screen } from '@testing-library/react';
+import { superRender } from '@actiontech/shared/lib/testUtil/superRender';
+import {
+ mockUseCurrentUser,
+ baseMockApi
+} from '@actiontech/shared/lib/testUtil';
+import { useDispatch, useSelector } from 'react-redux';
+import UserGuide from '../index';
+import { mockUseRecentlySelectedZone } from '../../../../testUtils/mockHooks/mockUseRecentlySelectedZone';
+import {
+ SQL_WORKBENCH_FROM_PARAM_NAME,
+ ODC_WORKBENCH_NAME
+} from '@actiontech/dms-kit';
+
+jest.mock('react-redux', () => ({
+ ...jest.requireActual('react-redux'),
+ useDispatch: jest.fn(),
+ useSelector: jest.fn()
+}));
+
+describe('UserGuide', () => {
+ const mockDispatch = jest.fn();
+
+ beforeEach(() => {
+ mockUseCurrentUser({ systemPreference: undefined });
+ baseMockApi.cloudBeaver.getSqlQueryUrl();
+ baseMockApi.userCenter.updateCurrentUser();
+ (useDispatch as jest.Mock).mockImplementation(() => mockDispatch);
+ (useSelector as jest.Mock).mockImplementation((selector) => {
+ return selector({
+ availabilityZone: {
+ availabilityZoneTips: []
+ }
+ });
+ });
+ mockUseRecentlySelectedZone();
+ jest.useFakeTimers();
+ });
+
+ afterEach(() => {
+ jest.useRealTimers();
+ jest.clearAllMocks();
+ });
+
+ it('should render modal when location not form ODC', async () => {
+ const { baseElement } = superRender();
+ expect(baseElement).toMatchSnapshot();
+ expect(screen.getByText('请选择默认进入的页面')).toBeInTheDocument();
+ });
+
+ it('should render null when location form ODC', async () => {
+ Object.defineProperty(window, 'location', {
+ value: {
+ search: `?${SQL_WORKBENCH_FROM_PARAM_NAME}=${ODC_WORKBENCH_NAME}`
+ },
+ writable: true
+ });
+ superRender();
+ expect(screen.queryByText('请选择默认进入的页面')).not.toBeInTheDocument();
+ });
+});
diff --git a/packages/base/src/page/Nav/UserGuideModal/data.ts b/packages/base/src/page/Nav/UserGuideModal/data.ts
new file mode 100644
index 000000000..741f47800
--- /dev/null
+++ b/packages/base/src/page/Nav/UserGuideModal/data.ts
@@ -0,0 +1,7 @@
+import { GetUserSystemEnum } from '@actiontech/shared/lib/api/base/service/common.enum';
+import { t } from '../../../locale';
+
+export const systemDictionary = {
+ [GetUserSystemEnum.WORKBENCH]: t('dmsMenu.userGuide.sqlWorkbench.label'),
+ [GetUserSystemEnum.MANAGEMENT]: t('dmsMenu.userGuide.adminPanel.label')
+};
diff --git a/packages/base/src/page/Nav/UserGuideModal/index.tsx b/packages/base/src/page/Nav/UserGuideModal/index.tsx
new file mode 100644
index 000000000..6f9d48ec3
--- /dev/null
+++ b/packages/base/src/page/Nav/UserGuideModal/index.tsx
@@ -0,0 +1,24 @@
+import { useMemo } from 'react';
+import UserGuideModal from './UserGuideModal';
+import queryString from 'query-string';
+import {
+ EmptyBox,
+ SQL_WORKBENCH_FROM_PARAM_NAME,
+ ODC_WORKBENCH_NAME
+} from '@actiontech/dms-kit';
+
+const UserGuide = () => {
+ const isNotFormODC = useMemo(() => {
+ const parsedQuery = queryString.parse(location.search);
+
+ return parsedQuery[SQL_WORKBENCH_FROM_PARAM_NAME] !== ODC_WORKBENCH_NAME;
+ }, []);
+
+ return (
+
+
+
+ );
+};
+
+export default UserGuide;
diff --git a/packages/base/src/page/Nav/UserGuideModal/style.ts b/packages/base/src/page/Nav/UserGuideModal/style.ts
new file mode 100644
index 000000000..e66334e4a
--- /dev/null
+++ b/packages/base/src/page/Nav/UserGuideModal/style.ts
@@ -0,0 +1,65 @@
+import { styled } from '@mui/material/styles';
+
+export const UserGuideModalStyleWrapper = styled('div')`
+ margin-bottom: 32px;
+
+ & .ant-radio-group.radio-group {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+
+ .radio-option {
+ display: flex;
+ align-items: flex-start;
+ width: 100%;
+ padding: 16px;
+ margin: 0;
+ border: 1px solid ${({ theme }) => theme.sharedTheme.uiToken.colorBorder};
+ border-radius: 8px;
+ background: ${({ theme }) => theme.sharedTheme.uiToken.colorBgBase};
+
+ &:hover {
+ border-color: ${({ theme }) => theme.sharedTheme.uiToken.colorPrimary};
+ }
+
+ &.ant-radio-wrapper-checked {
+ border-color: ${({ theme }) => theme.sharedTheme.uiToken.colorPrimary};
+ background: ${({ theme }) =>
+ theme.sharedTheme.basic.colorPrimaryBgActive};
+ }
+
+ .ant-radio {
+ margin-top: 2px;
+ }
+
+ .ant-radio + span {
+ margin-left: 12px;
+ flex: 1;
+ }
+ }
+ }
+
+ .option-content {
+ width: 100%;
+ }
+
+ .option-label {
+ font-weight: 500;
+ font-size: 14px;
+ color: ${({ theme }) => theme.sharedTheme.uiToken.colorTextBase};
+ margin-bottom: 4px;
+ }
+
+ .option-description {
+ font-size: 12px;
+ color: ${({ theme }) => theme.sharedTheme.uiToken.colorTextSecondary};
+ line-height: 1.4;
+ }
+`;
+
+export const UserGuideModalButtonContainer = styled('div')`
+ display: flex;
+ justify-content: center;
+ margin-top: 16px;
+`;
diff --git a/packages/base/src/page/Nav/index.tsx b/packages/base/src/page/Nav/index.tsx
index c64ff6aff..e85c6ff99 100644
--- a/packages/base/src/page/Nav/index.tsx
+++ b/packages/base/src/page/Nav/index.tsx
@@ -1,6 +1,7 @@
import { ReactNode } from 'react';
-import { LayoutStyleWrapper } from '@actiontech/shared/lib/styleWrapper/nav';
+import { LayoutStyleWrapper } from '@actiontech/dms-kit';
import useBrowserVersionTips from '../../hooks/useBrowserVersionTips';
+import UserGuideModal from './UserGuideModal';
// #if [ee]
import EESideMenu from './SideMenu';
@@ -29,6 +30,8 @@ const Nav: React.FC<{ children?: ReactNode }> = (props) => {
{/* #endif */}
+
+
);
};
diff --git a/packages/base/src/page/NotFoundPage/index.tsx b/packages/base/src/page/NotFoundPage/index.tsx
index c1aa2c2e1..281d74b2d 100644
--- a/packages/base/src/page/NotFoundPage/index.tsx
+++ b/packages/base/src/page/NotFoundPage/index.tsx
@@ -1,8 +1,8 @@
import React from 'react';
import { useTranslation } from 'react-i18next';
import { Typography, Space, Spin } from 'antd';
-import { BasicButton, useTypedNavigate, BasicResult } from '@actiontech/shared';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { BasicButton, BasicResult, ROUTE_PATHS } from '@actiontech/dms-kit';
+import { useTypedNavigate } from '@actiontech/shared';
import { SuggestionList } from './style';
import { DmsApi } from '@actiontech/shared/lib/api';
import { useRequest } from 'ahooks';
diff --git a/packages/base/src/page/Project/BatchImportDataSource/ConnectableErrorModal/index.tsx b/packages/base/src/page/Project/BatchImportDataSource/ConnectableErrorModal/index.tsx
index acb7b911c..f7e762bff 100644
--- a/packages/base/src/page/Project/BatchImportDataSource/ConnectableErrorModal/index.tsx
+++ b/packages/base/src/page/Project/BatchImportDataSource/ConnectableErrorModal/index.tsx
@@ -1,8 +1,10 @@
-import { BasicButton } from '@actiontech/shared/lib/components/BasicButton';
-import { BasicModal } from '@actiontech/shared/lib/components';
+import {
+ BasicButton,
+ BasicModal,
+ ReminderInformation
+} from '@actiontech/dms-kit';
import { useTranslation } from 'react-i18next';
import { Space } from 'antd';
-import { ReminderInformation } from '@actiontech/shared/lib/components/ReminderInformation';
import { ConnectableInfoModalWrapper } from '../style';
interface IConnectableErrorModalProps {
diff --git a/packages/base/src/page/Project/BatchImportDataSource/UploadForm/FileUpload.tsx b/packages/base/src/page/Project/BatchImportDataSource/UploadForm/FileUpload.tsx
index 8a6396a83..36c29fdda 100644
--- a/packages/base/src/page/Project/BatchImportDataSource/UploadForm/FileUpload.tsx
+++ b/packages/base/src/page/Project/BatchImportDataSource/UploadForm/FileUpload.tsx
@@ -1,25 +1,27 @@
import { Upload, UploadProps, Button, Space } from 'antd';
-import { BasicButton, ReminderInformation, EmptyBox } from '@actiontech/shared';
+import {
+ BasicButton,
+ ReminderInformation,
+ EmptyBox
+} from '@actiontech/dms-kit';
import { useTranslation } from 'react-i18next';
import { ImportProjectUploadFileFieldWrapper } from '../../style';
import Project from '@actiontech/shared/lib/api/base/service/Project';
import { useBoolean } from 'ahooks';
import { FileUploadCheckStatusType } from '../index.type';
-
const FileUpload: React.FC<
- UploadProps & { uploadCheckStatus: FileUploadCheckStatusType }
+ UploadProps & {
+ uploadCheckStatus: FileUploadCheckStatusType;
+ }
> = ({ uploadCheckStatus, ...props }) => {
const { t } = useTranslation();
-
const [loading, { setTrue: setPending, setFalse: setDone }] = useBoolean();
-
const onDownload = () => {
setPending();
- Project.GetImportDBServicesTemplate({ responseType: 'blob' }).finally(() =>
- setDone()
- );
+ Project.GetImportDBServicesTemplate({
+ responseType: 'blob'
+ }).finally(() => setDone());
};
-
return (
@@ -45,5 +47,4 @@ const FileUpload: React.FC<
);
};
-
export default FileUpload;
diff --git a/packages/base/src/page/Project/BatchImportDataSource/UploadForm/index.tsx b/packages/base/src/page/Project/BatchImportDataSource/UploadForm/index.tsx
index 61d898b45..3f726ebef 100644
--- a/packages/base/src/page/Project/BatchImportDataSource/UploadForm/index.tsx
+++ b/packages/base/src/page/Project/BatchImportDataSource/UploadForm/index.tsx
@@ -3,13 +3,10 @@ import {
FormAreaBlockStyleWrapper,
FormStyleWrapper,
formItemLayout
-} from '@actiontech/shared/lib/components/CustomForm/style';
-import {
- FormItemBigTitle,
- FormItemLabel
-} from '@actiontech/shared/lib/components/CustomForm';
+} from '@actiontech/dms-kit/es/components/CustomForm/style';
+import { FormItemBigTitle, FormItemLabel } from '@actiontech/dms-kit';
import Icon from '@ant-design/icons';
-import { getFileFromUploadChangeEvent } from '@actiontech/shared/lib/utils/Common';
+import { getFileFromUploadChangeEvent } from '@actiontech/dms-kit';
import {
BatchImportDataSourceFormType,
FileUploadCheckStatusType
diff --git a/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchCheckConnectable.ts b/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchCheckConnectable.ts
index a382a7813..f99cd4394 100644
--- a/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchCheckConnectable.ts
+++ b/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchCheckConnectable.ts
@@ -1,6 +1,6 @@
import { useRequest } from 'ahooks';
import { DmsApi } from '@actiontech/shared/lib/api';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { IImportDBServiceV2 } from '@actiontech/shared/lib/api/base/service/common';
import { useBoolean } from 'ahooks';
import {
diff --git a/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchImportDataSource.ts b/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchImportDataSource.ts
index 47ea8ffae..61f2784a4 100644
--- a/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchImportDataSource.ts
+++ b/packages/base/src/page/Project/BatchImportDataSource/hooks/useBatchImportDataSource.ts
@@ -4,13 +4,10 @@ import {
BatchImportDataSourceFormValueType,
FileUploadCheckStatusType
} from '../index.type';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
-import { jsonParse } from '@actiontech/shared/lib/utils/Common';
-import {
- MIMETypeEnum,
- ResponseBlobJsonType
-} from '@actiontech/shared/lib/enum';
-import { isExportFileResponse } from '@actiontech/shared/lib/utils/Common';
+import { ResponseCode } from '@actiontech/dms-kit';
+import { jsonParse } from '@actiontech/dms-kit';
+import { MIMETypeEnum, ResponseBlobJsonType } from '@actiontech/dms-kit';
+import { isExportFileResponse } from '@actiontech/dms-kit';
import { AxiosResponse } from 'axios';
import { useTranslation } from 'react-i18next';
import { IImportDBServiceV2 } from '@actiontech/shared/lib/api/base/service/common';
diff --git a/packages/base/src/page/Project/BatchImportDataSource/index.tsx b/packages/base/src/page/Project/BatchImportDataSource/index.tsx
index 3256794c6..8669e26de 100644
--- a/packages/base/src/page/Project/BatchImportDataSource/index.tsx
+++ b/packages/base/src/page/Project/BatchImportDataSource/index.tsx
@@ -2,24 +2,22 @@ import {
BasicButton,
PageHeader,
EmptyBox,
- BasicResult,
- TypedLink
-} from '@actiontech/shared';
+ BasicResult
+} from '@actiontech/dms-kit';
+import { TypedLink } from '@actiontech/shared';
import { useTranslation } from 'react-i18next';
import BatchImportDataSourceForm from './UploadForm';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import useBatchImportDataSource from './hooks/useBatchImportDataSource';
import { UploadProps } from 'antd';
import { useCallback } from 'react';
import { LeftArrowOutlined } from '@actiontech/icons';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
import { DmsApi } from '@actiontech/shared/lib/api';
import useBatchCheckConnectable from './hooks/useBatchCheckConnectable';
import ConnectableErrorModal from './ConnectableErrorModal';
-
const BatchImportDataSource = () => {
const { t } = useTranslation();
-
const {
importLoading,
setImportPending,
@@ -34,7 +32,6 @@ const BatchImportDataSource = () => {
uploadCheckStatus,
clearUploadCheckStatus
} = useBatchImportDataSource();
-
const {
batchCheckConnectable,
batchCheckConnectableLoading,
@@ -43,7 +40,6 @@ const BatchImportDataSource = () => {
hideConnectErrorModal,
connectableInfo
} = useBatchCheckConnectable();
-
const onSubmit = async () => {
setImportPending();
DmsApi.ProjectService.ImportDBServicesOfProjectsV2({
@@ -59,10 +55,8 @@ const BatchImportDataSource = () => {
hideConnectErrorModal();
});
};
-
const onCheckConnectableBeforeSubmit = async () => {
await form.validateFields();
-
batchCheckConnectable(dbServices ?? []).then((res) => {
if (res?.isConnectable) {
onSubmit();
@@ -71,7 +65,6 @@ const BatchImportDataSource = () => {
}
});
};
-
const onUploadCustomRequest = useCallback<
Required['customRequest']
>(
@@ -79,8 +72,12 @@ const BatchImportDataSource = () => {
setDBservices([]);
clearUploadCheckStatus();
DmsApi.ProjectService.ImportDBServicesOfProjectsCheckV2(
- { db_services_file: option.file },
- { responseType: 'blob' }
+ {
+ db_services_file: option.file
+ },
+ {
+ responseType: 'blob'
+ }
)
.then((res) => {
importServicesCheck(res);
@@ -92,7 +89,6 @@ const BatchImportDataSource = () => {
},
[importServicesCheck, setDBservices, clearUploadCheckStatus]
);
-
return (
<>
{
>
);
};
-
export default BatchImportDataSource;
diff --git a/packages/base/src/page/Project/Detail/NotFoundRecentlyProject/ProjectSelectorModal.tsx b/packages/base/src/page/Project/Detail/NotFoundRecentlyProject/ProjectSelectorModal.tsx
index 5fcdc65c8..3d3ea9a09 100644
--- a/packages/base/src/page/Project/Detail/NotFoundRecentlyProject/ProjectSelectorModal.tsx
+++ b/packages/base/src/page/Project/Detail/NotFoundRecentlyProject/ProjectSelectorModal.tsx
@@ -1,13 +1,12 @@
import { InputRef, SelectProps, Space } from 'antd';
-import { BasicButton, BasicModal } from '@actiontech/shared';
+import { BasicButton, BasicModal } from '@actiontech/dms-kit';
import { useTranslation } from 'react-i18next';
import { SelectProjectModalContentStyleWrapper } from './style';
import ProjectSelector from '../../../Nav/SideMenu/ProjectSelector';
import { ProjectSelectorPopupMenuStyleWrapper } from '../../../Nav/SideMenu/ProjectSelector/style';
import { ProjectSelectorModalProps } from './index.type';
-import CustomSelectSearchInput from '@actiontech/shared/lib/components/CustomSelect/CustomSelectSearchInput';
import { useRef, useState } from 'react';
-
+import CustomSelectSearchInput from '@actiontech/dms-kit/es/components/CustomSelect/CustomSelectSearchInput';
const ProjectSelectorModal: React.FC = ({
onModalOk,
open,
@@ -19,7 +18,6 @@ const ProjectSelectorModal: React.FC = ({
const { t } = useTranslation();
const searchInputRef = useRef(null);
const [searchValue, setSearchValue] = useState('');
-
const renderDropdown: SelectProps['dropdownRender'] = (menu) => {
return (
@@ -37,7 +35,6 @@ const ProjectSelectorModal: React.FC = ({
);
};
-
return (
= ({
);
};
-
export default ProjectSelectorModal;
diff --git a/packages/base/src/page/Project/Detail/index.ce.tsx b/packages/base/src/page/Project/Detail/index.ce.tsx
index 6e66719fb..4ddaa053c 100644
--- a/packages/base/src/page/Project/Detail/index.ce.tsx
+++ b/packages/base/src/page/Project/Detail/index.ce.tsx
@@ -1,13 +1,13 @@
-import { DEFAULT_PROJECT_ID } from '@actiontech/shared/lib/data/common';
+import { DEFAULT_PROJECT_ID } from '@actiontech/dms-kit';
import { useCurrentUser } from '@actiontech/shared/lib/features';
import { useEffect } from 'react';
import { Outlet, useLocation } from 'react-router-dom';
import useFetchPermissionData from '../../../hooks/useFetchPermissionData';
import { useDispatch } from 'react-redux';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { updateUserOperationPermissions } from '../../../store/permission';
import { useTypedNavigate } from '@actiontech/shared';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
const CEIndexProjectDetail: React.FC = () => {
const location = useLocation();
diff --git a/packages/base/src/page/Project/Detail/index.ee.tsx b/packages/base/src/page/Project/Detail/index.ee.tsx
index 8e408dc29..e76c75c9f 100644
--- a/packages/base/src/page/Project/Detail/index.ee.tsx
+++ b/packages/base/src/page/Project/Detail/index.ee.tsx
@@ -7,7 +7,7 @@ import { Outlet } from 'react-router-dom';
import useRecentlyOpenedProjects from '../../Nav/SideMenu/useRecentlyOpenedProjects';
import NotFoundRecentlyProject from './NotFoundRecentlyProject';
import useFetchPermissionData from '../../../hooks/useFetchPermissionData';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { useDispatch } from 'react-redux';
import { updateUserOperationPermissions } from '../../../store/permission';
diff --git a/packages/base/src/page/Project/Drawer/AddProject.tsx b/packages/base/src/page/Project/Drawer/AddProject.tsx
index 0ac4be1b1..f87e6ec51 100644
--- a/packages/base/src/page/Project/Drawer/AddProject.tsx
+++ b/packages/base/src/page/Project/Drawer/AddProject.tsx
@@ -9,27 +9,21 @@ import { IReduxState } from '../../../store';
import { updateProjectModalStatus } from '../../../store/project';
import EventEmitter from '../../../utils/EventEmitter';
import ProjectForm from './ProjectForm/ProjectForm';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { ProjectFormFields } from './ProjectForm';
import { IAddProjectV2Params } from '@actiontech/shared/lib/api/base/service/Project/index.d';
import { DmsApi } from '@actiontech/shared/lib/api';
-import { BasicButton, BasicDrawer } from '@actiontech/shared';
-
+import { BasicButton, BasicDrawer } from '@actiontech/dms-kit';
const AddProject: React.FC = () => {
const { t } = useTranslation();
const dispatch = useDispatch();
-
const [messageApi, contextHolder] = message.useMessage();
-
const [form] = useForm();
-
const [submitLoading, { setFalse: submitFinish, setTrue: startSubmit }] =
useBoolean();
-
const visible = useSelector(
(state: IReduxState) => state.project.modalStatus[ModalName.DMS_Add_Project]
);
-
const closeDrawer = () => {
form.resetFields();
dispatch(
@@ -39,7 +33,6 @@ const AddProject: React.FC = () => {
})
);
};
-
const submit = async () => {
const values = await form.validateFields();
const params: IAddProjectV2Params = {
@@ -69,7 +62,6 @@ const AddProject: React.FC = () => {
submitFinish();
});
};
-
return (
<>
{
>
);
};
-
export default AddProject;
diff --git a/packages/base/src/page/Project/Drawer/ProjectForm/BusinessField/index.tsx b/packages/base/src/page/Project/Drawer/ProjectForm/BusinessField/index.tsx
index bb4a78e70..162aaeaa5 100644
--- a/packages/base/src/page/Project/Drawer/ProjectForm/BusinessField/index.tsx
+++ b/packages/base/src/page/Project/Drawer/ProjectForm/BusinessField/index.tsx
@@ -1,36 +1,27 @@
-import {
- EditableSelect,
- EditableSelectValue,
- EditableSelectOption
-} from '@actiontech/shared';
+import { EditableSelect } from '@actiontech/dms-kit';
+import { EditableSelectValue, EditableSelectOption } from '@actiontech/dms-kit';
import { useTranslation } from 'react-i18next';
import { DmsApi } from '@actiontech/shared/lib/api';
import { useRequest } from 'ahooks';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { message } from 'antd';
import { useState } from 'react';
import { IListProjectV2 } from '@actiontech/shared/lib/api/base/service/common';
import { useBoolean } from 'ahooks';
-
interface BusinessSelectorProps {
value?: EditableSelectValue;
onChange?: (value: EditableSelectValue) => void;
}
-
const BusinessField = (props: BusinessSelectorProps) => {
const { t } = useTranslation();
-
const [messageApi, contextHolder] = message.useMessage();
-
const [boundProjectList, setBoundProjectList] = useState(
[]
);
-
const [
operationLoading,
{ setTrue: startOperationLoading, setFalse: stopOperationLoading }
] = useBoolean();
-
const {
data: businessList,
refresh,
@@ -48,7 +39,6 @@ const BusinessField = (props: BusinessSelectorProps) => {
}
})
);
-
const onAddBusiness = (v: string) => {
startOperationLoading();
DmsApi.ProjectService.CreateBusinessTag({
@@ -66,7 +56,6 @@ const BusinessField = (props: BusinessSelectorProps) => {
stopOperationLoading();
});
};
-
const deleteBusinessTag = (id: string) => {
startOperationLoading();
DmsApi.ProjectService.DeleteBusinessTag({
@@ -82,7 +71,6 @@ const BusinessField = (props: BusinessSelectorProps) => {
stopOperationLoading();
});
};
-
const onDelete = (item: EditableSelectOption) => {
startOperationLoading();
DmsApi.ProjectService.ListProjectsV2({
@@ -101,7 +89,6 @@ const BusinessField = (props: BusinessSelectorProps) => {
stopOperationLoading();
});
};
-
const onUpdate = (item: EditableSelectOption) => {
startOperationLoading();
DmsApi.ProjectService.UpdateBusinessTag({
@@ -120,7 +107,6 @@ const BusinessField = (props: BusinessSelectorProps) => {
stopOperationLoading();
});
};
-
return (
<>
{contextHolder}
@@ -146,5 +132,4 @@ const BusinessField = (props: BusinessSelectorProps) => {
>
);
};
-
export default BusinessField;
diff --git a/packages/base/src/page/Project/Drawer/ProjectForm/ProjectForm.tsx b/packages/base/src/page/Project/Drawer/ProjectForm/ProjectForm.tsx
index 368d219c9..a30139322 100644
--- a/packages/base/src/page/Project/Drawer/ProjectForm/ProjectForm.tsx
+++ b/packages/base/src/page/Project/Drawer/ProjectForm/ProjectForm.tsx
@@ -1,17 +1,15 @@
import { Form } from 'antd';
import { useTranslation } from 'react-i18next';
import { ProjectFormFields, ProjectFormProps } from '.';
-import { nameRule } from '@actiontech/shared/lib/utils/FormRule';
-import { BasicInput, BasicSelect } from '@actiontech/shared';
+import { nameRule } from '@actiontech/dms-kit';
+import { BasicInput, BasicSelect } from '@actiontech/dms-kit';
import { ProjectPriorityOptions } from 'sqle/src/page/GlobalDashboard/index.data';
import BusinessField from './BusinessField';
-
const ProjectForm: React.FC = ({
form,
isUpdate = false
}) => {
const { t } = useTranslation();
-
return (
= ({
);
};
-
export default ProjectForm;
diff --git a/packages/base/src/page/Project/Drawer/UpdateProject.tsx b/packages/base/src/page/Project/Drawer/UpdateProject.tsx
index 0dadc90a0..e98c0e746 100644
--- a/packages/base/src/page/Project/Drawer/UpdateProject.tsx
+++ b/packages/base/src/page/Project/Drawer/UpdateProject.tsx
@@ -4,7 +4,7 @@ import { useForm } from 'antd/es/form/Form';
import { useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import EmitterKey from '../../../data/EmitterKey';
import { ModalName } from '../../../data/ModalName';
import { IReduxState } from '../../../store';
@@ -14,28 +14,22 @@ import ProjectForm from './ProjectForm/ProjectForm';
import { updateProjectModalStatus } from '../../../store/project';
import { IUpdateProjectV2Params } from '@actiontech/shared/lib/api/base/service/Project/index.d';
import { DmsApi } from '@actiontech/shared/lib/api';
-import { BasicButton, BasicDrawer } from '@actiontech/shared';
+import { BasicButton, BasicDrawer } from '@actiontech/dms-kit';
import {
ProjectV2ProjectPriorityEnum,
UpdateProjectV2ProjectPriorityEnum
} from '@actiontech/shared/lib/api/base/service/common.enum';
-
const UpdateProject: React.FC = () => {
const { t } = useTranslation();
const dispatch = useDispatch();
-
const [messageApi, contextHolder] = message.useMessage();
-
const [form] = useForm();
-
const [submitLoading, { setFalse: submitFinish, setTrue: startSubmit }] =
useBoolean();
-
const { visible, selectProjectItem } = useSelector((state: IReduxState) => ({
visible: state.project.modalStatus[ModalName.DMS_Update_Project],
selectProjectItem: state.project.selectProject ?? undefined
}));
-
const closeDrawer = () => {
form.resetFields();
dispatch(
@@ -45,7 +39,6 @@ const UpdateProject: React.FC = () => {
})
);
};
-
const submit = async () => {
const values = await form.validateFields();
const params: IUpdateProjectV2Params = {
@@ -76,7 +69,6 @@ const UpdateProject: React.FC = () => {
submitFinish();
});
};
-
useEffect(() => {
if (visible) {
form.setFieldsValue({
@@ -88,7 +80,6 @@ const UpdateProject: React.FC = () => {
});
}
}, [form, visible, selectProjectItem]);
-
return (
<>
{
>
);
};
-
export default UpdateProject;
diff --git a/packages/base/src/page/Project/Drawer/__tests__/AddProject.test.tsx b/packages/base/src/page/Project/Drawer/__tests__/AddProject.test.tsx
index be16a63cc..bc0a34c10 100644
--- a/packages/base/src/page/Project/Drawer/__tests__/AddProject.test.tsx
+++ b/packages/base/src/page/Project/Drawer/__tests__/AddProject.test.tsx
@@ -11,7 +11,7 @@ import {
getBySelector
} from '@actiontech/shared/lib/testUtil/customQuery';
import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser';
-import { SupportLanguage } from '@actiontech/shared/lib/enum';
+import { SupportLanguage } from '@actiontech/dms-kit';
jest.mock('react-redux', () => {
return {
diff --git a/packages/base/src/page/Project/ImportProject/FileUpload/index.tsx b/packages/base/src/page/Project/ImportProject/FileUpload/index.tsx
index cded2656d..61398b15e 100644
--- a/packages/base/src/page/Project/ImportProject/FileUpload/index.tsx
+++ b/packages/base/src/page/Project/ImportProject/FileUpload/index.tsx
@@ -1,22 +1,18 @@
import { Upload, UploadProps, Button } from 'antd';
-import { BasicButton } from '@actiontech/shared';
+import { BasicButton } from '@actiontech/dms-kit';
import { useTranslation } from 'react-i18next';
import { ImportProjectUploadFileFieldWrapper } from '../../style';
import Project from '@actiontech/shared/lib/api/base/service/Project';
import { useBoolean } from 'ahooks';
-
const FileUpload: React.FC = (props) => {
const { t } = useTranslation();
-
const [loading, { setTrue: setPending, setFalse: setDone }] = useBoolean();
-
const onDownload = () => {
setPending();
- Project.GetImportProjectsTemplate({ responseType: 'blob' }).finally(() =>
- setDone()
- );
+ Project.GetImportProjectsTemplate({
+ responseType: 'blob'
+ }).finally(() => setDone());
};
-
return (
@@ -28,5 +24,4 @@ const FileUpload: React.FC = (props) => {
);
};
-
export default FileUpload;
diff --git a/packages/base/src/page/Project/ImportProject/column.tsx b/packages/base/src/page/Project/ImportProject/column.tsx
index 9bafc92a9..08bfa8df5 100644
--- a/packages/base/src/page/Project/ImportProject/column.tsx
+++ b/packages/base/src/page/Project/ImportProject/column.tsx
@@ -1,4 +1,4 @@
-import { ActiontechTableColumn } from '@actiontech/shared/lib/components/ActiontechTable';
+import { ActiontechTableColumn } from '@actiontech/dms-kit/es/components/ActiontechTable';
import { IPreviewImportProjectsV2 } from '@actiontech/shared/lib/api/base/service/common';
import { BasicTypographyEllipsis } from '@actiontech/shared';
import { t } from '../../../locale';
diff --git a/packages/base/src/page/Project/ImportProject/index.tsx b/packages/base/src/page/Project/ImportProject/index.tsx
index 8a0f5effa..2db688400 100644
--- a/packages/base/src/page/Project/ImportProject/index.tsx
+++ b/packages/base/src/page/Project/ImportProject/index.tsx
@@ -2,54 +2,46 @@ import {
BasicButton,
PageHeader,
EmptyBox,
- BasicResult,
- TypedLink
-} from '@actiontech/shared';
+ BasicResult
+} from '@actiontech/dms-kit';
+import { TypedLink } from '@actiontech/shared';
import { useTranslation } from 'react-i18next';
import {
FormAreaBlockStyleWrapper,
FormStyleWrapper,
formItemLayout
-} from '@actiontech/shared/lib/components/CustomForm/style';
+} from '@actiontech/dms-kit/es/components/CustomForm/style';
import { Form } from 'antd';
-import {
- FormItemBigTitle,
- FormItemLabel
-} from '@actiontech/shared/lib/components/CustomForm';
+import { FormItemBigTitle, FormItemLabel } from '@actiontech/dms-kit';
import Icon from '@ant-design/icons';
-import { getFileFromUploadChangeEvent } from '@actiontech/shared/lib/utils/Common';
-import { ActiontechTable } from '@actiontech/shared/lib/components/ActiontechTable';
+import { getFileFromUploadChangeEvent } from '@actiontech/dms-kit';
+import { ActiontechTable } from '@actiontech/dms-kit/es/components/ActiontechTable';
import { useBoolean } from 'ahooks';
import FileUpload from './FileUpload';
import { DmsApi } from '@actiontech/shared/lib/api';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { useState } from 'react';
import { IPreviewImportProjectsV2 } from '@actiontech/shared/lib/api/base/service/common';
import { importProjectListColumn } from './column';
import { ImportProjectUploadFileWrapper } from '../style';
import { LeftArrowOutlined, OverviewOutlined } from '@actiontech/icons';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
-
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
const ImportProject = () => {
const { t } = useTranslation();
-
- const [selectFileForm] = Form.useForm<{ projectsFile: File }>();
-
+ const [selectFileForm] = Form.useForm<{
+ projectsFile: File;
+ }>();
const [showProjectsTable, { setTrue: showTable, setFalse: hideTable }] =
useBoolean();
-
const [
importLoading,
{ setTrue: setImportPending, setFalse: setImportDone }
] = useBoolean();
-
const [resultVisible, { setTrue: showResult, setFalse: hideResult }] =
useBoolean(false);
-
const [importProjects, setImportProjects] = useState<
IPreviewImportProjectsV2[]
>([]);
-
const onSubmit = async () => {
await selectFileForm.validateFields();
setImportPending();
@@ -65,14 +57,12 @@ const ImportProject = () => {
setImportDone();
});
};
-
const resetAndHideResult = () => {
selectFileForm.resetFields();
hideResult();
hideTable();
setImportProjects([]);
};
-
return (
{
);
};
-
export default ImportProject;
diff --git a/packages/base/src/page/Project/List/action.ts b/packages/base/src/page/Project/List/action.ts
index a5e80343d..2cd765ae2 100644
--- a/packages/base/src/page/Project/List/action.ts
+++ b/packages/base/src/page/Project/List/action.ts
@@ -5,8 +5,8 @@ import {
PermissionsConstantType
} from '@actiontech/shared/lib/features';
import { t } from '../../../locale';
-import { ACTIONTECH_TABLE_ACTION_BUTTON_WIDTH } from '@actiontech/shared/lib/components/ActiontechTable/hooks/useTableAction';
-import { ActiontechTableActionsConfig } from '@actiontech/shared/lib/components/ActiontechTable/index.type';
+import { ACTIONTECH_TABLE_ACTION_BUTTON_WIDTH } from '@actiontech/dms-kit/es/components/ActiontechTable/hooks/useTableAction';
+import { ActiontechTableActionsConfig } from '@actiontech/dms-kit/es/components/ActiontechTable/index.type';
type Params = {
checkActionPermission: (
diff --git a/packages/base/src/page/Project/List/columns.tsx b/packages/base/src/page/Project/List/columns.tsx
index f312ad430..20acb17ce 100644
--- a/packages/base/src/page/Project/List/columns.tsx
+++ b/packages/base/src/page/Project/List/columns.tsx
@@ -1,12 +1,12 @@
import { t } from '../../../locale';
-import { formatTime } from '@actiontech/shared/lib/utils/Common';
+import { formatTime } from '@actiontech/dms-kit';
import { IListProjectV2 } from '@actiontech/shared/lib/api/base/service/common';
-import { ActiontechTableColumn } from '@actiontech/shared/lib/components/ActiontechTable';
-import { TableColumnWithIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element';
+import { ActiontechTableColumn } from '@actiontech/dms-kit/es/components/ActiontechTable';
+import { TableColumnWithIconStyleWrapper } from '@actiontech/dms-kit';
import { FlagFilled, LockOutlined } from '@actiontech/icons';
import { BasicTypographyEllipsis, TypedLink } from '@actiontech/shared';
import { ProjectPriorityDictionary } from 'sqle/src/page/GlobalDashboard/index.data';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
import { ProjectListBusinessTagStyleWrapper } from './style';
export const ProjectListTableColumnFactory =
diff --git a/packages/base/src/page/Project/List/index.test.tsx b/packages/base/src/page/Project/List/index.test.tsx
index 11c578c95..185119447 100644
--- a/packages/base/src/page/Project/List/index.test.tsx
+++ b/packages/base/src/page/Project/List/index.test.tsx
@@ -10,7 +10,7 @@ import { mockProjectList } from '@actiontech/shared/lib/testUtil/mockApi/base/pr
import { baseSuperRender } from '../../../testUtils/superRender';
import EventEmitter from '../../../utils/EventEmitter';
import EmitterKey from '../../../data/EmitterKey';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery';
jest.mock('react-redux', () => {
diff --git a/packages/base/src/page/Project/List/index.tsx b/packages/base/src/page/Project/List/index.tsx
index 08ddbcddc..567f891c8 100644
--- a/packages/base/src/page/Project/List/index.tsx
+++ b/packages/base/src/page/Project/List/index.tsx
@@ -6,7 +6,7 @@ import {
useTableRequestError,
useTableRequestParams,
TableToolbar
-} from '@actiontech/shared/lib/components/ActiontechTable';
+} from '@actiontech/dms-kit/es/components/ActiontechTable';
import { usePermission, useUserInfo } from '@actiontech/shared/lib/features';
import { useRequest } from 'ahooks';
import { message } from 'antd';
@@ -14,7 +14,7 @@ import { useCallback, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import { useDispatch } from 'react-redux';
import { ProjectListTableColumnFactory } from './columns';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import EventEmitter from '../../../utils/EventEmitter';
import EmitterKey from '../../../data/EmitterKey';
import {
diff --git a/packages/base/src/page/Project/List/style.ts b/packages/base/src/page/Project/List/style.ts
index e830ac203..b73f0e50f 100644
--- a/packages/base/src/page/Project/List/style.ts
+++ b/packages/base/src/page/Project/List/style.ts
@@ -1,6 +1,5 @@
import { styled } from '@mui/material/styles';
-import { BasicTag } from '@actiontech/shared';
-
+import { BasicTag } from '@actiontech/dms-kit';
export const ProjectListBusinessTagStyleWrapper = styled(BasicTag)`
&.ant-tag {
width: max-content;
diff --git a/packages/base/src/page/Project/action.tsx b/packages/base/src/page/Project/action.tsx
index ab75bc139..e78ef7a4a 100644
--- a/packages/base/src/page/Project/action.tsx
+++ b/packages/base/src/page/Project/action.tsx
@@ -5,8 +5,7 @@ import {
} from '@actiontech/shared/lib/features';
import { ReactNode } from 'react';
import { t } from '../../locale';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
-
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
export const ProjectManagementPageHeaderActions = (
onExport: () => void,
exportPending: boolean,
diff --git a/packages/base/src/page/Project/index.test.tsx b/packages/base/src/page/Project/index.test.tsx
index 94ea93d81..f42bb4b74 100644
--- a/packages/base/src/page/Project/index.test.tsx
+++ b/packages/base/src/page/Project/index.test.tsx
@@ -9,7 +9,7 @@ import Project from '.';
import { act, cleanup, fireEvent, screen } from '@testing-library/react';
import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery';
import EmitterKey from '../../data/EmitterKey';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
import { mockCurrentUserReturn } from '@actiontech/shared/lib/testUtil/mockHook/data';
jest.mock('react-redux', () => {
diff --git a/packages/base/src/page/Project/index.tsx b/packages/base/src/page/Project/index.tsx
index 17492e682..7ff2b7159 100644
--- a/packages/base/src/page/Project/index.tsx
+++ b/packages/base/src/page/Project/index.tsx
@@ -1,5 +1,5 @@
-import { PageHeader } from '@actiontech/shared';
-import { TableRefreshButton } from '@actiontech/shared/lib/components/ActiontechTable';
+import { PageHeader } from '@actiontech/dms-kit';
+import { TableRefreshButton } from '@actiontech/dms-kit/es/components/ActiontechTable';
import { Space, message } from 'antd';
import { useTranslation } from 'react-i18next';
import EventEmitter from '../../utils/EventEmitter';
@@ -12,21 +12,15 @@ import ProjectManageDrawer from './Drawer';
import { DmsApi } from '@actiontech/shared/lib/api';
import { useBoolean } from 'ahooks';
import { ProjectManagementPageHeaderActions } from './action';
-
const Project: React.FC = () => {
const { t } = useTranslation();
-
const [messageApi, contextHolder] = message.useMessage();
-
const [exportLoading, { setTrue: exportPending, setFalse: exportFinish }] =
useBoolean();
-
const dispatch = useDispatch();
-
const refreshTable = () => {
EventEmitter.emit(EmitterKey.DMS_Refresh_Project_List);
};
-
const onCreateProject = () => {
dispatch(
updateProjectModalStatus({
@@ -35,27 +29,27 @@ const Project: React.FC = () => {
})
);
};
-
const onExport = () => {
exportPending();
const hideLoading = messageApi.loading(
t('dmsProject.projectList.exportMessage'),
0
);
- DmsApi.ProjectService.ExportProjects({}, { responseType: 'blob' }).finally(
- () => {
- exportFinish();
- hideLoading();
+ DmsApi.ProjectService.ExportProjects(
+ {},
+ {
+ responseType: 'blob'
}
- );
+ ).finally(() => {
+ exportFinish();
+ hideLoading();
+ });
};
-
const headerActions = ProjectManagementPageHeaderActions(
onExport,
exportLoading,
onCreateProject
);
-
return (
{contextHolder}
@@ -82,5 +76,4 @@ const Project: React.FC = () => {
);
};
-
export default Project;
diff --git a/packages/base/src/page/ResourceOverview/components/ResourceDetail/ResourceTopology/index.tsx b/packages/base/src/page/ResourceOverview/components/ResourceDetail/ResourceTopology/index.tsx
index 78b5cb846..8a58420ab 100644
--- a/packages/base/src/page/ResourceOverview/components/ResourceDetail/ResourceTopology/index.tsx
+++ b/packages/base/src/page/ResourceOverview/components/ResourceDetail/ResourceTopology/index.tsx
@@ -1,16 +1,14 @@
import React, { useCallback, useEffect, useState } from 'react';
-import { BasicButton } from '@actiontech/shared';
+import { BasicButton } from '@actiontech/dms-kit';
import { Card, Tree, Space, type TreeDataNode } from 'antd';
import { useTranslation } from 'react-i18next';
import { DownOutlined, RightOutlined } from '@actiontech/icons';
import { AntTreeNodeProps } from 'antd/es/tree';
import classNames from 'classnames';
-
interface TreeNodeData extends TreeDataNode {
key: string;
children?: TreeNodeData[];
}
-
interface ResourceTopologyProps {
topology: TreeNodeData[];
selectedKey?: string;
@@ -18,7 +16,6 @@ interface ResourceTopologyProps {
expandedKeys: string[];
setExpandedKeys: (keys: string[]) => void;
}
-
const ResourceTopology: React.FC = ({
topology,
selectedKey,
@@ -29,16 +26,13 @@ const ResourceTopology: React.FC = ({
const { t } = useTranslation();
const [autoExpandParent, setAutoExpandParent] = useState(true);
const [allKeys, setAllKeys] = useState([]);
-
const onExpand = (keys: React.Key[]) => {
setExpandedKeys(keys as string[]);
setAutoExpandParent(false);
};
-
const onSelect = (keys: React.Key[]) => {
setSelectedKey(keys[0] as string);
};
-
const getAllKeys = useCallback(() => {
const keys: string[] = [];
const traverse = (nodes: TreeNodeData[]) => {
@@ -52,7 +46,6 @@ const ResourceTopology: React.FC = ({
traverse(topology ?? []);
return keys;
}, [topology]);
-
const toggleExpandAll = useCallback(
(expand: boolean) => {
if (expand) {
@@ -64,7 +57,6 @@ const ResourceTopology: React.FC = ({
},
[setExpandedKeys, allKeys]
);
-
useEffect(() => {
if (topology.length > 0) {
const keys = getAllKeys();
@@ -72,7 +64,6 @@ const ResourceTopology: React.FC = ({
setExpandedKeys(keys);
}
}, [topology, getAllKeys, setExpandedKeys]);
-
return (
= ({
);
};
-
export default ResourceTopology;
diff --git a/packages/base/src/page/ResourceOverview/components/ResourceDetail/actions.tsx b/packages/base/src/page/ResourceOverview/components/ResourceDetail/actions.tsx
index 0c452078e..95084730e 100644
--- a/packages/base/src/page/ResourceOverview/components/ResourceDetail/actions.tsx
+++ b/packages/base/src/page/ResourceOverview/components/ResourceDetail/actions.tsx
@@ -1,6 +1,6 @@
import { t } from '../../../../locale';
import { IResourceListData } from '@actiontech/shared/lib/api/base/service/common';
-import { ActiontechTableActionMeta } from '@actiontech/shared/lib/components/ActiontechTable/index.type';
+import { ActiontechTableActionMeta } from '@actiontech/dms-kit/es/components/ActiontechTable/index.type';
import {
ActiontechTableToolbarActionWithPermissions,
PERMISSIONS
diff --git a/packages/base/src/page/ResourceOverview/components/ResourceDetail/columns.tsx b/packages/base/src/page/ResourceOverview/components/ResourceDetail/columns.tsx
index 8847dee86..3211c4bd3 100644
--- a/packages/base/src/page/ResourceOverview/components/ResourceDetail/columns.tsx
+++ b/packages/base/src/page/ResourceOverview/components/ResourceDetail/columns.tsx
@@ -1,12 +1,11 @@
import { t } from '../../../../locale';
import { IResourceListData } from '@actiontech/shared/lib/api/base/service/common';
-import { ActiontechTableColumn } from '@actiontech/shared/lib/components/ActiontechTable';
+import { ActiontechTableColumn } from '@actiontech/dms-kit/es/components/ActiontechTable';
import { IGetResourceOverviewResourceListV1Params } from '@actiontech/shared/lib/api/base/service/ResourceOverview/index.d';
-import { DatabaseTypeLogo, BasicToolTip } from '@actiontech/shared';
-import { TableColumnWithIconStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element';
+import { DatabaseTypeLogo, BasicToolTip } from '@actiontech/dms-kit';
+import { TableColumnWithIconStyleWrapper } from '@actiontech/dms-kit';
import { FlagFilled, DatabaseSchemaFilled } from '@actiontech/icons';
import { ResourceOverviewTheme } from '../../../../theme/type';
-
export const ResourceDetailListColumns = (
getLogoUrlByDbType: (dbType: string) => string,
theme: ResourceOverviewTheme
@@ -25,7 +24,6 @@ export const ResourceDetailListColumns = (
title: t('resourceOverview.resourceList.type'),
render: (dbType) => {
if (!dbType) return '-';
-
return (
{
const { t } = useTranslation();
const [form] = useForm();
const { mergeFromValueIntoParams } = useAsyncParams();
-
const [
submitResultVisibility,
{ setTrue: showResult, setFalse: hiddenResult }
] = useBoolean();
const [submitLoading, { setTrue: startSubmit, setFalse: submitFinish }] =
useBoolean();
-
const { updateTaskSourceList, ...taskSourceTips } = useTaskSource();
-
const onSubmit = async () => {
const values = await form.validateFields();
startSubmit();
-
const additionalParams = taskSourceTips.generateTaskSourceAdditionalParams(
values.source
);
-
const params: IAddDBServiceSyncTaskParams = {
db_service_sync_task: {
name: values.name,
@@ -75,7 +69,6 @@ const AddSyncTask: React.FC = () => {
)
}
};
-
DBServiceSyncTaskService.AddDBServiceSyncTask(params)
.then((res) => {
if (res.data.code === ResponseCode.SUCCESS) {
@@ -86,16 +79,13 @@ const AddSyncTask: React.FC = () => {
submitFinish();
});
};
-
const resetAndHideResult = useCallback(() => {
hiddenResult();
EventEmitter.emit(EmitterKey.DMS_SYNC_TASK_RESET_FORM);
}, [hiddenResult]);
-
useEffect(() => {
updateTaskSourceList();
}, [updateTaskSourceList]);
-
return (
{
);
};
-
export default AddSyncTask;
diff --git a/packages/base/src/page/SyncDataSource/Form/index.tsx b/packages/base/src/page/SyncDataSource/Form/index.tsx
index dc9568e13..2ef84aca7 100644
--- a/packages/base/src/page/SyncDataSource/Form/index.tsx
+++ b/packages/base/src/page/SyncDataSource/Form/index.tsx
@@ -5,15 +5,15 @@ import {
BasicInput,
BasicSelect,
CronInput,
- EmptyBox,
- TypedLink
-} from '@actiontech/shared';
+ EmptyBox
+} from '@actiontech/dms-kit';
+import { TypedLink } from '@actiontech/shared';
import {
FormAreaBlockStyleWrapper,
FormAreaLineStyleWrapper,
FormStyleWrapper,
formItemLayout
-} from '@actiontech/shared/lib/components/CustomForm/style';
+} from '@actiontech/dms-kit/es/components/CustomForm/style';
import {
CustomLabelContent,
FormInputBotBorder,
@@ -21,9 +21,9 @@ import {
FormItemLabel,
FormItemNoLabel,
FormItemSubTitle
-} from '@actiontech/shared/lib/components/CustomForm';
-import { checkCron } from '@actiontech/shared/lib/components/CronInput/useCron/cron.tool';
-import { nameRule } from '@actiontech/shared/lib/utils/FormRule';
+} from '@actiontech/dms-kit';
+import { checkCron } from '@actiontech/dms-kit/es/components/CronInput/useCron/cron.tool';
+import { nameRule } from '@actiontech/dms-kit';
import EmitterKey from '../../../data/EmitterKey';
import EventEmitter from '../../../utils/EventEmitter';
import useGlobalRuleTemplate from 'sqle/src/hooks/useGlobalRuleTemplate';
@@ -31,7 +31,6 @@ import AutoCreatedFormItemByApi from 'sqle/src/components/BackendForm/AutoCreate
import useAsyncParams from 'sqle/src/components/BackendForm/useAsyncParams';
import { SyncTaskFormProps } from './index.type';
import SqlAuditFields from '../../DataSource/components/Form/SqlAuditFields';
-
const SyncTaskForm: React.FC = ({
form,
defaultValue,
@@ -42,18 +41,14 @@ const SyncTaskForm: React.FC = ({
const { t } = useTranslation();
const isUpdate = useMemo(() => !!defaultValue, [defaultValue]);
const source = Form.useWatch('source', form);
-
const { generateFormValueByParams } = useAsyncParams();
-
const {
loading: getTaskSourceListLoading,
generateTaskSourceSelectOption,
generateTaskSourceDbTypesSelectOption,
generateTaskSourceAdditionalParams
} = taskSourceTips;
-
const formParams = generateTaskSourceAdditionalParams(source);
-
const handleChangeInstanceType = (type: string) => {
// #if [sqle]
form.resetFields([
@@ -67,7 +62,6 @@ const SyncTaskForm: React.FC = ({
updateGlobalRuleTemplateList(type);
// #endif
};
-
const handleChangeAuditEnabled = (check: boolean) => {
if (!check) {
form.setFieldsValue({
@@ -83,7 +77,6 @@ const SyncTaskForm: React.FC = ({
}
}
};
-
const handleChangeSource = () => {
form.setFieldsValue({
instanceType: undefined
@@ -96,7 +89,6 @@ const SyncTaskForm: React.FC = ({
updateGlobalRuleTemplateList,
globalRuleTemplateList
} = useGlobalRuleTemplate();
-
const templateOptions = useMemo(() => {
return globalRuleTemplateList.map((v) => ({
key: v.rule_template_id,
@@ -145,15 +137,12 @@ const SyncTaskForm: React.FC = ({
updateGlobalRuleTemplateByInstanceType();
// #endif
};
-
EventEmitter.subscribe(EmitterKey.DMS_SYNC_TASK_RESET_FORM, resetForm);
-
return () => {
EventEmitter.unsubscribe(EmitterKey.DMS_SYNC_TASK_RESET_FORM, resetForm);
};
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [defaultValue?.db_type, form, isUpdate]);
-
useEffect(() => {
if (!!defaultValue) {
form.setFieldsValue({
@@ -191,7 +180,6 @@ const SyncTaskForm: React.FC = ({
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [defaultValue, form]);
-
return (
= ({
},
...nameRule()
]}
- labelCol={{ span: 0 }}
- wrapperCol={{ span: 24 }}
+ labelCol={{
+ span: 0
+ }}
+ wrapperCol={{
+ span: 24
+ }}
>
= ({
+
{t('dmsSyncDataSource.syncTaskForm.helpTips')}
= ({
);
};
-
export default SyncTaskForm;
diff --git a/packages/base/src/page/SyncDataSource/List/__snapshots__/index.test.tsx.snap b/packages/base/src/page/SyncDataSource/List/__snapshots__/index.test.tsx.snap
index b41c50751..9940f0405 100644
--- a/packages/base/src/page/SyncDataSource/List/__snapshots__/index.test.tsx.snap
+++ b/packages/base/src/page/SyncDataSource/List/__snapshots__/index.test.tsx.snap
@@ -229,18 +229,14 @@ exports[`page/SyncDataSource/SyncTaskList render list action when no permission
class="ant-space-item"
style="margin-right: 8px;"
>
-
-
-
+
+ 编 辑
+
+
void;
deleteAction: (taskId: string) => void;
+ editSyncTask: (taskId: string) => void;
}) => ActiontechTableActionsWithPermissions
= ({
syncAction,
- deleteAction
+ deleteAction,
+ editSyncTask
}) => {
return [
{
key: 'edit',
text: t('common.edit'),
permissions: PERMISSIONS.ACTIONS.BASE.SYNC_DATA_SOURCE.EDIT,
- link(record) {
- return {
- to: parse2ReactRouterPath(ROUTE_PATHS.BASE.SYNC_DATA_SOURCE.update, {
- params: { taskId: record?.uid ?? '' }
- })
- };
- }
+ buttonProps: (record) => ({
+ onClick: () => editSyncTask(record?.uid ?? '')
+ })
},
{
key: 'sync',
diff --git a/packages/base/src/page/SyncDataSource/List/column.tsx b/packages/base/src/page/SyncDataSource/List/column.tsx
index 1278f59c2..98f0e5b7a 100644
--- a/packages/base/src/page/SyncDataSource/List/column.tsx
+++ b/packages/base/src/page/SyncDataSource/List/column.tsx
@@ -1,11 +1,10 @@
import { t } from '../../../locale';
-import { formatTime } from '@actiontech/shared/lib/utils/Common';
+import { formatTime } from '@actiontech/dms-kit';
import { IListDBServiceSyncTask } from '@actiontech/shared/lib/api/base/service/common';
-import { ActiontechTableColumn } from '@actiontech/shared/lib/components/ActiontechTable';
-import { BasicTag, BasicToolTip, DatabaseTypeLogo } from '@actiontech/shared';
+import { ActiontechTableColumn } from '@actiontech/dms-kit/es/components/ActiontechTable';
+import { BasicTag, BasicToolTip, DatabaseTypeLogo } from '@actiontech/dms-kit';
import { useDbServiceDriver } from '@actiontech/shared/lib/features';
import { Space } from 'antd';
-
export const SyncTaskListTableColumnFactory: () => ActiontechTableColumn =
() => {
const { getLogoUrlByDbType } = useDbServiceDriver();
@@ -29,7 +28,6 @@ export const SyncTaskListTableColumnFactory: () => ActiontechTableColumn ActiontechTableColumn
);
}
-
if (!lastSyncErr && !!record.last_sync_success_time)
return (
{t('common.success')}
);
-
return '-';
}
},
diff --git a/packages/base/src/page/SyncDataSource/List/index.test.tsx b/packages/base/src/page/SyncDataSource/List/index.test.tsx
index 7b73cdb29..93c778999 100644
--- a/packages/base/src/page/SyncDataSource/List/index.test.tsx
+++ b/packages/base/src/page/SyncDataSource/List/index.test.tsx
@@ -5,7 +5,7 @@ import syncTaskList from '@actiontech/shared/lib/testUtil/mockApi/base/syncTaskL
import SyncTaskList from '.';
import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser';
import { syncTaskListMockData } from '@actiontech/shared/lib/testUtil/mockApi/base/syncTaskList/data';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
jest.mock('react-router-dom', () => {
return {
@@ -95,6 +95,15 @@ describe('page/SyncDataSource/SyncTaskList', () => {
expect(requestTableList).toHaveBeenCalledTimes(2);
});
+ it('render edit button action', async () => {
+ customRender();
+
+ await act(async () => jest.advanceTimersByTime(3300));
+ fireEvent.click(screen.getAllByText('编 辑')[0]);
+ await act(async () => jest.advanceTimersByTime(0));
+ expect(navigateSpy).toHaveBeenCalledTimes(1);
+ });
+
it('should not render action column when user no operation permissions', async () => {
mockUseCurrentUser({
userRoles: {
diff --git a/packages/base/src/page/SyncDataSource/List/index.tsx b/packages/base/src/page/SyncDataSource/List/index.tsx
index 804f4cc49..65b63fa83 100644
--- a/packages/base/src/page/SyncDataSource/List/index.tsx
+++ b/packages/base/src/page/SyncDataSource/List/index.tsx
@@ -2,22 +2,25 @@ import { useRequest } from 'ahooks';
import { message } from 'antd';
import { useTranslation } from 'react-i18next';
import { SyncTaskListTableColumnFactory } from './column';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode, ROUTE_PATHS } from '@actiontech/dms-kit';
import DBServiceSyncTaskService from '@actiontech/shared/lib/api/base/service/DBServiceSyncTask';
import {
ActiontechTable,
useTableRequestError
-} from '@actiontech/shared/lib/components/ActiontechTable';
+} from '@actiontech/dms-kit/es/components/ActiontechTable';
import { useEffect } from 'react';
import eventEmitter from '../../../utils/EventEmitter';
import EmitterKey from '../../../data/EmitterKey';
import { SyncTaskListActions } from './action';
import { usePermission } from '@actiontech/shared/lib/features';
+import { useTypedNavigate } from '@actiontech/shared';
const SyncTaskList: React.FC = () => {
const { t } = useTranslation();
const [messageApi, contextHoler] = message.useMessage();
+ const navigate = useTypedNavigate();
+
const { parse2TableActionPermissions } = usePermission();
const { requestErrorMessage, handleTableRequestError } =
@@ -65,6 +68,12 @@ const SyncTaskList: React.FC = () => {
});
};
+ const editSyncTask = (taskId: string) => {
+ navigate(ROUTE_PATHS.BASE.SYNC_DATA_SOURCE.update, {
+ params: { taskId }
+ });
+ };
+
const { loading, data, refresh } = useRequest(() =>
handleTableRequestError(DBServiceSyncTaskService.ListDBServiceSyncTasks())
);
@@ -94,7 +103,8 @@ const SyncTaskList: React.FC = () => {
actions={parse2TableActionPermissions(
SyncTaskListActions({
syncAction,
- deleteAction
+ deleteAction,
+ editSyncTask
})
)}
/>
diff --git a/packages/base/src/page/SyncDataSource/UpdatePage/index.tsx b/packages/base/src/page/SyncDataSource/UpdatePage/index.tsx
index 58a17f406..ec2cca341 100644
--- a/packages/base/src/page/SyncDataSource/UpdatePage/index.tsx
+++ b/packages/base/src/page/SyncDataSource/UpdatePage/index.tsx
@@ -2,18 +2,16 @@ import { useTranslation } from 'react-i18next';
import { useBoolean } from 'ahooks';
import { useCallback, useEffect, useState } from 'react';
import { Empty, message, Space, Typography } from 'antd';
+import { BasicButton, EmptyBox, PageHeader } from '@actiontech/dms-kit';
import {
BackButton,
- BasicButton,
- EmptyBox,
- PageHeader,
useTypedNavigate,
useTypedParams
} from '@actiontech/shared';
-import { PageLayoutHasFixedHeaderStyleWrapper } from '@actiontech/shared/lib/styleWrapper/element';
+import { PageLayoutHasFixedHeaderStyleWrapper } from '@actiontech/dms-kit';
import { useForm } from 'antd/es/form/Form';
import SyncTaskForm from '../Form';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { IGetDBServiceSyncTask } from '@actiontech/shared/lib/api/base/service/common';
import EmitterKey from '../../../data/EmitterKey';
import EventEmitter from '../../../utils/EventEmitter';
@@ -25,17 +23,14 @@ import { IUpdateDBServiceSyncTaskParams } from '@actiontech/shared/lib/api/base/
import useTaskSource from '../../../hooks/useTaskSource';
import useAsyncParams from 'sqle/src/components/BackendForm/useAsyncParams';
import { SyncTaskFormFields } from '../Form/index.type';
-import { ROUTE_PATHS } from '@actiontech/shared/lib/data/routePaths';
-
+import { ROUTE_PATHS } from '@actiontech/dms-kit';
const UpdateSyncTask: React.FC = () => {
const { t } = useTranslation();
const navigate = useTypedNavigate();
-
const [messageApi, contextHoler] = message.useMessage();
const [form] = useForm();
const { updateTaskSourceList, ...taskSourceTips } = useTaskSource();
const { mergeFromValueIntoParams } = useAsyncParams();
-
const { taskId } =
useTypedParams();
const [initError, setInitError] = useState('');
@@ -44,15 +39,12 @@ const UpdateSyncTask: React.FC = () => {
const [taskInfoLoading, setTaskInfoLoading] = useState(false);
const [syncInstanceTask, setSyncInstanceTask] =
useState();
-
const onSubmit = async () => {
const values: SyncTaskFormFields = await form.validateFields();
startSubmit();
-
const additionalParams = taskSourceTips.generateTaskSourceAdditionalParams(
values.source
);
-
const params: IUpdateDBServiceSyncTaskParams = {
db_service_sync_task_uid: taskId ?? '',
db_service_sync_task: {
@@ -83,13 +75,14 @@ const UpdateSyncTask: React.FC = () => {
)
}
};
-
DBServiceSyncTaskService.UpdateDBServiceSyncTask(params)
.then((res) => {
if (res.data.code === ResponseCode.SUCCESS) {
messageApi.success(t('dmsSyncDataSource.updateSyncTask.successTips'));
navigate(ROUTE_PATHS.BASE.DATA_SOURCE_MANAGEMENT.index, {
- queries: { active: DataSourceManagerSegmentedKey.SyncDataSource },
+ queries: {
+ active: DataSourceManagerSegmentedKey.SyncDataSource
+ },
replace: true
});
}
@@ -98,7 +91,6 @@ const UpdateSyncTask: React.FC = () => {
submitFinish();
});
};
-
const getSyncInstanceTask = useCallback(() => {
if (!taskId) {
setInitError(t('common.unknownError'));
@@ -120,16 +112,13 @@ const UpdateSyncTask: React.FC = () => {
setTaskInfoLoading(false);
});
}, [t, taskId]);
-
const reset = () => {
EventEmitter.emit(EmitterKey.DMS_SYNC_TASK_RESET_FORM);
};
-
useEffect(() => {
getSyncInstanceTask();
updateTaskSourceList();
}, [getSyncInstanceTask, updateTaskSourceList]);
-
return (
{contextHoler}
@@ -160,7 +149,9 @@ const UpdateSyncTask: React.FC = () => {
if={!initError}
defaultNode={
@@ -195,5 +186,4 @@ const UpdateSyncTask: React.FC = () => {
);
};
-
export default UpdateSyncTask;
diff --git a/packages/base/src/page/System/GitSSHConfig/index.test.tsx b/packages/base/src/page/System/GitSSHConfig/index.test.tsx
index 85bb50f12..46c01a018 100644
--- a/packages/base/src/page/System/GitSSHConfig/index.test.tsx
+++ b/packages/base/src/page/System/GitSSHConfig/index.test.tsx
@@ -3,7 +3,7 @@ import { act, cleanup, fireEvent, screen } from '@testing-library/react';
import { baseSuperRender } from '../../../testUtils/superRender';
import configuration from '@actiontech/shared/lib/testUtil/mockApi/sqle/configuration';
import { getSSHPublicKeyMockData } from '@actiontech/shared/lib/testUtil/mockApi/sqle/configuration/data';
-import { Copy } from '@actiontech/shared';
+import { Copy } from '@actiontech/dms-kit';
import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi';
describe('base/System/GitSSHConfig', () => {
diff --git a/packages/base/src/page/System/GitSSHConfig/index.tsx b/packages/base/src/page/System/GitSSHConfig/index.tsx
index 2814cb9a0..f19a05d67 100644
--- a/packages/base/src/page/System/GitSSHConfig/index.tsx
+++ b/packages/base/src/page/System/GitSSHConfig/index.tsx
@@ -1,18 +1,16 @@
import { useTranslation } from 'react-i18next';
import { Alert, Card, Space, Spin, Typography, message } from 'antd';
-import { BasicButton, BasicToolTip, Copy } from '@actiontech/shared';
+import { BasicButton, BasicToolTip } from '@actiontech/dms-kit';
+import { Copy } from '@actiontech/dms-kit';
import SystemBasicTitle from '../components/BasicTitle';
import { useRequest } from 'ahooks';
import { SqleApi } from '@actiontech/shared/lib/api';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { GitSSHConfigStyleWrapper } from './style';
-
const { Text, Paragraph } = Typography;
-
const GitSSHConfig: React.FC = () => {
const { t } = useTranslation();
const [messageApi, messageContextHolder] = message.useMessage();
-
const {
loading: getLoading,
run: getPublicKey,
@@ -22,7 +20,6 @@ const GitSSHConfig: React.FC = () => {
(res) => res.data.data?.public_key
);
});
-
const { loading: generateLoading, run: generateSSHKey } = useRequest(
() => {
return SqleApi.ConfigurationService.genSSHPublicKey();
@@ -36,14 +33,12 @@ const GitSSHConfig: React.FC = () => {
}
}
);
-
const onCopy = () => {
if (publicKey) {
Copy.copyTextByTextarea(publicKey);
messageApi.success(t('common.copied'));
}
};
-
return (
{messageContextHolder}
@@ -94,5 +89,4 @@ const GitSSHConfig: React.FC = () => {
);
};
-
export default GitSSHConfig;
diff --git a/packages/base/src/page/System/GlobalSetting/components/CBOperationLogsExpiredHours.tsx b/packages/base/src/page/System/GlobalSetting/components/CBOperationLogsExpiredHours.tsx
index cb30f718d..d5a9c0107 100644
--- a/packages/base/src/page/System/GlobalSetting/components/CBOperationLogsExpiredHours.tsx
+++ b/packages/base/src/page/System/GlobalSetting/components/CBOperationLogsExpiredHours.tsx
@@ -1,14 +1,9 @@
import { useTranslation } from 'react-i18next';
-import { ConfigItem } from '@actiontech/shared';
-import {
- EditInputNumber,
- LabelContent
-} from '@actiontech/shared/lib/components/ConfigItem';
+import { ConfigItem } from '@actiontech/dms-kit';
+import { EditInputNumber, LabelContent } from '@actiontech/dms-kit';
import useValidatorNumber from './useValidatorNumber';
-
import { IUpdateSystemVariablesReqV1 } from '@actiontech/shared/lib/api/sqle/service/common';
import { PERMISSIONS, usePermission } from '@actiontech/shared/lib/features';
-
export interface CBOperationLogsExpiredHoursProps {
expiredHours: number | undefined;
fieldVisible: boolean;
@@ -19,7 +14,6 @@ export interface CBOperationLogsExpiredHoursProps {
fieldName: keyof IUpdateSystemVariablesReqV1
) => void;
}
-
const CBOperationLogsExpiredHours = ({
expiredHours,
fieldVisible,
@@ -61,5 +55,4 @@ const CBOperationLogsExpiredHours = ({
>
);
};
-
export default CBOperationLogsExpiredHours;
diff --git a/packages/base/src/page/System/GlobalSetting/components/OperationRecordExpiredHours.tsx b/packages/base/src/page/System/GlobalSetting/components/OperationRecordExpiredHours.tsx
index cd4ec61d6..512081f4f 100644
--- a/packages/base/src/page/System/GlobalSetting/components/OperationRecordExpiredHours.tsx
+++ b/packages/base/src/page/System/GlobalSetting/components/OperationRecordExpiredHours.tsx
@@ -1,13 +1,9 @@
import { useTranslation } from 'react-i18next';
-import { ConfigItem } from '@actiontech/shared';
-import {
- EditInputNumber,
- LabelContent
-} from '@actiontech/shared/lib/components/ConfigItem';
+import { ConfigItem } from '@actiontech/dms-kit';
+import { EditInputNumber, LabelContent } from '@actiontech/dms-kit';
import useValidatorNumber from './useValidatorNumber';
import { IUpdateSystemVariablesReqV1 } from '@actiontech/shared/lib/api/sqle/service/common';
import { PERMISSIONS, usePermission } from '@actiontech/shared/lib/features';
-
export interface OperationRecordExpiredHoursProps {
expiredHours: number | undefined;
fieldVisible: boolean;
@@ -18,7 +14,6 @@ export interface OperationRecordExpiredHoursProps {
fieldName: keyof IUpdateSystemVariablesReqV1
) => void;
}
-
const OperationRecordExpiredHours = ({
expiredHours,
fieldVisible,
@@ -60,5 +55,4 @@ const OperationRecordExpiredHours = ({
>
);
};
-
export default OperationRecordExpiredHours;
diff --git a/packages/base/src/page/System/GlobalSetting/components/UrlAddressPrefixTips.tsx b/packages/base/src/page/System/GlobalSetting/components/UrlAddressPrefixTips.tsx
index ef8a8cae0..35ff9521f 100644
--- a/packages/base/src/page/System/GlobalSetting/components/UrlAddressPrefixTips.tsx
+++ b/packages/base/src/page/System/GlobalSetting/components/UrlAddressPrefixTips.tsx
@@ -1,12 +1,8 @@
import { useTranslation } from 'react-i18next';
-import { ConfigItem } from '@actiontech/shared';
-import {
- EditInput,
- LabelContent
-} from '@actiontech/shared/lib/components/ConfigItem';
+import { ConfigItem } from '@actiontech/dms-kit';
+import { EditInput, LabelContent } from '@actiontech/dms-kit';
import { IUpdateSystemVariablesReqV1 } from '@actiontech/shared/lib/api/sqle/service/common';
import { PERMISSIONS, usePermission } from '@actiontech/shared/lib/features';
-
export interface UrlAddressPrefixTipsProps {
url: string | undefined;
fieldVisible: boolean;
@@ -17,7 +13,6 @@ export interface UrlAddressPrefixTipsProps {
fieldName: keyof IUpdateSystemVariablesReqV1
) => void;
}
-
const UrlAddressPrefixTips = ({
url,
fieldVisible,
@@ -55,5 +50,4 @@ const UrlAddressPrefixTips = ({
>
);
};
-
export default UrlAddressPrefixTips;
diff --git a/packages/base/src/page/System/GlobalSetting/components/useValidatorNumber.ts b/packages/base/src/page/System/GlobalSetting/components/useValidatorNumber.ts
index 7a68d1b1a..c2faacaff 100644
--- a/packages/base/src/page/System/GlobalSetting/components/useValidatorNumber.ts
+++ b/packages/base/src/page/System/GlobalSetting/components/useValidatorNumber.ts
@@ -1,7 +1,7 @@
import { useTranslation } from 'react-i18next';
import { message } from 'antd';
-import { integerValidate } from '@actiontech/shared/lib/utils/Common';
+import { integerValidate } from '@actiontech/dms-kit';
const useValidatorNumber = () => {
const { t } = useTranslation();
diff --git a/packages/base/src/page/System/GlobalSetting/index.tsx b/packages/base/src/page/System/GlobalSetting/index.tsx
index 9453441b9..94b1d484e 100644
--- a/packages/base/src/page/System/GlobalSetting/index.tsx
+++ b/packages/base/src/page/System/GlobalSetting/index.tsx
@@ -1,16 +1,15 @@
import { useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import { useBoolean, useRequest } from 'ahooks';
-import useHideConfigInputNode from '../../../../../shared/lib/components/ConfigItem/hooks/useHideConfigInputNode';
+import useHideConfigInputNode from '@actiontech/dms-kit/es/components/ConfigItem/hooks/useHideConfigInputNode';
import { DmsApi } from '@actiontech/shared/lib/api';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
-import { IUpdateSystemVariablesReqV1 } from '@actiontech/shared/lib/api/base/service/common';
+import { ResponseCode, ConfigFieldMapMeta } from '@actiontech/dms-kit';
+import { IUpdateSystemVariablesReqV1 } from '@actiontech/shared/lib/api/sqle/service/common';
import { Spin } from 'antd';
import SystemBasicTitle from '../components/BasicTitle';
import OperationRecordExpiredHours from './components/OperationRecordExpiredHours';
import UrlAddressPrefixTips from './components/UrlAddressPrefixTips';
import CBOperationLogsExpiredHours from './components/CBOperationLogsExpiredHours';
-import { ConfigFieldMapMeta } from '@actiontech/shared';
const GlobalSetting = () => {
const { t } = useTranslation();
diff --git a/packages/base/src/page/System/License/Modal/ImportLicense.tsx b/packages/base/src/page/System/License/Modal/ImportLicense.tsx
index eb0f4f44c..2b54cde94 100644
--- a/packages/base/src/page/System/License/Modal/ImportLicense.tsx
+++ b/packages/base/src/page/System/License/Modal/ImportLicense.tsx
@@ -2,40 +2,34 @@ import { useTranslation } from 'react-i18next';
import { useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { useBoolean } from 'ahooks';
-
import { Form, message, Upload } from 'antd';
import { useForm } from 'antd/es/form/Form';
import { RcFile } from 'antd/es/upload';
-import { BasicButton, BasicModal } from '@actiontech/shared';
-import { ActiontechTable } from '@actiontech/shared/lib/components/ActiontechTable';
+import { BasicButton, BasicModal } from '@actiontech/dms-kit';
+import { ActiontechTable } from '@actiontech/dms-kit/es/components/ActiontechTable';
import { LicenseColumn } from '../index.data';
-
-import { getFileFromUploadChangeEvent } from '@actiontech/shared/lib/utils/Common';
+import { getFileFromUploadChangeEvent } from '@actiontech/dms-kit';
import EventEmitter from '../../../../utils/EventEmitter';
import EmitterKey from '../../../../data/EmitterKey';
import { ModalName } from '../../../../data/ModalName';
import { IReduxState } from '../../../../store';
import { updateSystemModalStatus } from '../../../../store/system';
-
import Configuration from '@actiontech/shared/lib/api/base/service/Configuration';
-import { ModalSize, ResponseCode } from '@actiontech/shared/lib/enum';
+import { ModalSize } from '@actiontech/dms-kit';
+import { ResponseCode } from '@actiontech/dms-kit';
import { ILicenseItem } from '@actiontech/shared/lib/api/sqle/service/common';
-
const ImportLicenseModal = () => {
const { t } = useTranslation();
const dispatch = useDispatch();
const [messageApi, messageContextHolder] = message.useMessage();
-
const visible = useSelector(
(state: IReduxState) =>
state.system.modalStatus[ModalName.DMS_Import_License]
);
-
const [licenseData, setLicenseData] = useState([]);
const [prepareLoading, { setTrue: startPrepare, setFalse: prepareFinish }] =
useBoolean();
const [form] = useForm();
-
const fileChange = (currentFile: RcFile) => {
startPrepare();
Configuration.CheckLicense({
@@ -56,7 +50,6 @@ const ImportLicenseModal = () => {
});
return false;
};
-
const close = () => {
form.resetFields();
dispatch(
@@ -66,10 +59,8 @@ const ImportLicenseModal = () => {
})
);
};
-
const [importLoading, { setTrue: startImport, setFalse: importFinish }] =
useBoolean();
-
const submit = async () => {
const values = await form.validateFields();
startImport();
@@ -86,7 +77,6 @@ const ImportLicenseModal = () => {
importFinish();
}
};
-
return (
{
);
};
-
export default ImportLicenseModal;
diff --git a/packages/base/src/page/System/License/action.tsx b/packages/base/src/page/System/License/action.tsx
index 98386e3d5..a4e75a080 100644
--- a/packages/base/src/page/System/License/action.tsx
+++ b/packages/base/src/page/System/License/action.tsx
@@ -1,11 +1,11 @@
-import { ActionButton, BasicTooltipProps } from '@actiontech/shared';
+import { ActionButton } from '@actiontech/shared';
+import { BasicTooltipProps } from '@actiontech/dms-kit';
import {
PERMISSIONS,
PermissionControl
} from '@actiontech/shared/lib/features';
import { ReactNode } from 'react';
import { t } from '../../../locale';
-
type Params = {
collectActionTooltipProps: BasicTooltipProps;
collectAction: {
@@ -16,7 +16,6 @@ type Params = {
onClick: () => void;
};
};
-
export const LicenseActions = (
params: Params
): Record<'collect_license' | 'import_license', ReactNode> => {
diff --git a/packages/base/src/page/System/License/index.data.tsx b/packages/base/src/page/System/License/index.data.tsx
index d6aaf2669..7d641f17b 100644
--- a/packages/base/src/page/System/License/index.data.tsx
+++ b/packages/base/src/page/System/License/index.data.tsx
@@ -1,4 +1,4 @@
-import { ActiontechTableColumn } from '@actiontech/shared/lib/components/ActiontechTable';
+import { ActiontechTableColumn } from '@actiontech/dms-kit/es/components/ActiontechTable';
import { t } from '../../../locale';
import { ILicenseItem } from '@actiontech/shared/lib/api/base/service/common';
import { BasicTypographyEllipsis } from '@actiontech/shared';
diff --git a/packages/base/src/page/System/License/index.tsx b/packages/base/src/page/System/License/index.tsx
index b94f235e3..028572b00 100644
--- a/packages/base/src/page/System/License/index.tsx
+++ b/packages/base/src/page/System/License/index.tsx
@@ -11,10 +11,10 @@ import { ModalName } from '../../../data/ModalName';
import SystemBasicTitle from '../components/BasicTitle';
import ImportLicense from './Modal/ImportLicense';
import { LicenseColumn } from './index.data';
-import { ActiontechTable } from '@actiontech/shared/lib/components/ActiontechTable';
+import { ActiontechTable } from '@actiontech/dms-kit/es/components/ActiontechTable';
import { LicenseActions } from './action';
import { useCurrentUser } from '@actiontech/shared/lib/features';
-import { DEFAULT_LANGUAGE } from '@actiontech/shared/lib/locale';
+import { DEFAULT_LANGUAGE } from '@actiontech/dms-kit';
const License = () => {
const { t } = useTranslation();
diff --git a/packages/base/src/page/System/LoginConnection/LDAPSetting/components/ConfigField.tsx b/packages/base/src/page/System/LoginConnection/LDAPSetting/components/ConfigField.tsx
index bf73c8c39..7765e056d 100644
--- a/packages/base/src/page/System/LoginConnection/LDAPSetting/components/ConfigField.tsx
+++ b/packages/base/src/page/System/LoginConnection/LDAPSetting/components/ConfigField.tsx
@@ -1,12 +1,8 @@
import { useTranslation } from 'react-i18next';
-import { BasicInput, BasicSwitch } from '@actiontech/shared';
-import {
- CustomLabelContent,
- FormItemLabel
-} from '@actiontech/shared/lib/components/CustomForm';
-import { validatorPort } from '@actiontech/shared/lib/utils/FormRule';
+import { BasicInput, BasicSwitch } from '@actiontech/dms-kit';
+import { CustomLabelContent, FormItemLabel } from '@actiontech/dms-kit';
+import { validatorPort } from '@actiontech/dms-kit';
import { Form } from 'antd';
-
const ConfigField = () => {
const { t } = useTranslation();
const updatePassword = Form.useWatch('update_password');
@@ -17,7 +13,11 @@ const ConfigField = () => {
name="enable_ssl"
valuePropName="checked"
className="has-required-style"
- rules={[{ required: true }]}
+ rules={[
+ {
+ required: true
+ }
+ ]}
>
@@ -25,7 +25,11 @@ const ConfigField = () => {
label={t('dmsSystem.ldap.ldapServerHost')}
name="ldap_server_host"
className="has-required-style"
- rules={[{ required: true }]}
+ rules={[
+ {
+ required: true
+ }
+ ]}
>
{
label={t('dmsSystem.ldap.ldapConnectPwd')}
name="ldap_connect_pwd"
className="has-required-style"
- rules={[{ required: updatePassword }]}
+ rules={[
+ {
+ required: updatePassword
+ }
+ ]}
hidden={!updatePassword}
>
{
>
);
};
-
export default ConfigField;
diff --git a/packages/base/src/page/System/LoginConnection/LDAPSetting/index.tsx b/packages/base/src/page/System/LoginConnection/LDAPSetting/index.tsx
index 465f404e1..34cc31f14 100644
--- a/packages/base/src/page/System/LoginConnection/LDAPSetting/index.tsx
+++ b/packages/base/src/page/System/LoginConnection/LDAPSetting/index.tsx
@@ -10,11 +10,11 @@ import {
useConfigRender,
useConfigSwitchControls,
ReadOnlyConfigColumnsType
-} from '@actiontech/shared/lib/components/SystemConfigurationHub';
+} from '@actiontech/dms-kit';
import ConfigField from './components/ConfigField';
import Configuration from '@actiontech/shared/lib/api/base/service/Configuration';
import { LDAPFormFields } from './index.type';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import {
ILDAPConfiguration,
ILDAPConfigurationResData
diff --git a/packages/base/src/page/System/LoginConnection/LoginBasicSetting/index.tsx b/packages/base/src/page/System/LoginConnection/LoginBasicSetting/index.tsx
index 1e41b9c8b..4f541820b 100644
--- a/packages/base/src/page/System/LoginConnection/LoginBasicSetting/index.tsx
+++ b/packages/base/src/page/System/LoginConnection/LoginBasicSetting/index.tsx
@@ -1,19 +1,13 @@
import { Popconfirm, Spin } from 'antd';
import { useTranslation } from 'react-i18next';
-import {
- BasicSwitch,
- BasicToolTip,
- ConfigItem,
- EditInput,
- LabelContent
-} from '@actiontech/shared';
+import { BasicSwitch, BasicToolTip, ConfigItem } from '@actiontech/dms-kit';
+import { EditInput, LabelContent } from '@actiontech/dms-kit';
import { useState } from 'react';
import { useLoginConnectionContext } from '../context';
import { useBoolean, useRequest } from 'ahooks';
import { DmsApi } from '@actiontech/shared/lib/api';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { ILoginConfiguration } from '@actiontech/shared/lib/api/base/service/common';
-
const LoginBasicSetting: React.FC = () => {
const { t } = useTranslation();
const { isLDAPEnabled, isOAuthEnabled } = useLoginConnectionContext();
@@ -23,7 +17,6 @@ const LoginBasicSetting: React.FC = () => {
isLoginButtonEditing,
{ setTrue: startEditing, setFalse: finishEditing }
] = useBoolean();
-
const updateLoginConfig = async (
value: string | boolean,
configKey: keyof ILoginConfiguration
@@ -40,7 +33,6 @@ const LoginBasicSetting: React.FC = () => {
}
}
};
-
const { loading, refresh } = useRequest(() =>
DmsApi.ConfigurationService.GetLoginTips().then((res) => {
if (res.data.code === ResponseCode.SUCCESS) {
@@ -49,7 +41,6 @@ const LoginBasicSetting: React.FC = () => {
}
})
);
-
const renderPasswordLoginSwitch = () => {
if (!isOAuthEnabled) {
return (
@@ -61,13 +52,11 @@ const LoginBasicSetting: React.FC = () => {
);
}
-
const confirmTitle = isPasswordLoginDisabled
? t('dmsSystem.loginBasic.confirmDisable')
: isLDAPEnabled
? t('dmsSystem.loginBasic.confirmEnableWithLDAP')
: t('dmsSystem.loginBasic.confirmEnable');
-
return (
{
);
};
-
return (
{
);
};
-
export default LoginBasicSetting;
diff --git a/packages/base/src/page/System/LoginConnection/Oauth/components/ConfigField.tsx b/packages/base/src/page/System/LoginConnection/Oauth/components/ConfigField.tsx
index 8a3ab1a96..6b4f4f7f5 100644
--- a/packages/base/src/page/System/LoginConnection/Oauth/components/ConfigField.tsx
+++ b/packages/base/src/page/System/LoginConnection/Oauth/components/ConfigField.tsx
@@ -1,17 +1,10 @@
import { useTranslation } from 'react-i18next';
-
-import { BasicInput, BasicSwitch, EmptyBox } from '@actiontech/shared';
-import {
- FormItemLabel,
- CustomLabelContent
-} from '@actiontech/shared/lib/components/CustomForm';
+import { BasicInput, BasicSwitch, EmptyBox } from '@actiontech/dms-kit';
+import { FormItemLabel, CustomLabelContent } from '@actiontech/dms-kit';
import { Form } from 'antd';
-
const ConfigField = () => {
const { t } = useTranslation();
-
const autoCreateUser = Form.useWatch('autoCreateUser');
-
return (
<>
{
>
);
};
-
export default ConfigField;
diff --git a/packages/base/src/page/System/LoginConnection/Oauth/index.tsx b/packages/base/src/page/System/LoginConnection/Oauth/index.tsx
index 7d30c4a6c..90d60e177 100644
--- a/packages/base/src/page/System/LoginConnection/Oauth/index.tsx
+++ b/packages/base/src/page/System/LoginConnection/Oauth/index.tsx
@@ -2,11 +2,8 @@ import { useCallback, useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import { useBoolean, useRequest } from 'ahooks';
import { Form, Space, Spin, Tag, Typography } from 'antd';
-import {
- BasicToolTip,
- EmptyBox,
- EnterpriseFeatureDisplay
-} from '@actiontech/shared';
+import { BasicToolTip, EmptyBox } from '@actiontech/dms-kit';
+import { EnterpriseFeatureDisplay } from '@actiontech/shared';
import {
ConfigSwitch,
ConfigModifyBtn,
@@ -14,11 +11,11 @@ import {
useConfigRender,
useConfigSwitchControls,
ReadOnlyConfigColumnsType
-} from '@actiontech/shared/lib/components/SystemConfigurationHub';
+} from '@actiontech/dms-kit';
import ConfigField from './components/ConfigField';
import { switchFieldName } from './index.data';
import Configuration from '@actiontech/shared/lib/api/base/service/Configuration';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { OauthFormField } from './index.type';
import {
IGetOauth2ConfigurationResData,
@@ -32,7 +29,6 @@ import {
PermissionControl
} from '@actiontech/shared/lib/features';
import { useLoginConnectionContext } from '../context';
-
const Oauth = () => {
const { t } = useTranslation();
const { baseTheme } = useThemeStyleData();
@@ -71,11 +67,9 @@ const Oauth = () => {
// #endif
}
);
-
const isConfigClosed = useMemo(() => {
return !oauthConfig?.enable_oauth2;
}, [oauthConfig]);
-
const handleClickCancel = () => {
if (isConfigClosed) form.setFieldValue(switchFieldName, false);
setFormDefaultValue();
@@ -85,7 +79,6 @@ const Oauth = () => {
setFormDefaultValue();
startModify();
};
-
const [submitLoading, { setTrue: startSubmit, setFalse: submitFinish }] =
useBoolean();
const handleSubmit = async (value: OauthFormField) => {
@@ -111,15 +104,12 @@ const Oauth = () => {
auto_bind_same_name_user: value.autoBindSameNameUser,
enable_manually_bind: value.enableManuallyBind
};
-
if (!!value.scopes) {
configuration.scopes = value.scopes.split(',');
}
-
const params: IUpdateOauth2ConfigurationParams = {
oauth2: configuration
};
-
try {
const res = await Configuration.UpdateOauth2Configuration(params);
if (res.data.code === ResponseCode.SUCCESS) {
@@ -131,7 +121,6 @@ const Oauth = () => {
submitFinish();
}
};
-
const setFormDefaultValue = useCallback(() => {
form.setFieldsValue({
clientId: oauthConfig?.client_id,
@@ -155,9 +144,7 @@ const Oauth = () => {
enableManuallyBind: oauthConfig?.enable_manually_bind
});
}, [form, oauthConfig]);
-
const switchOpen = Form.useWatch(switchFieldName, form);
-
const {
configSwitchPopoverOpenState,
generateConfigSwitchPopoverTitle,
@@ -165,7 +152,6 @@ const Oauth = () => {
handleConfigSwitchChange,
hiddenConfigSwitchPopover
} = useConfigSwitchControls(form, switchFieldName);
-
const onConfigSwitchPopoverConfirm = async () => {
if (isConfigClosed && modifyFlag) {
handleClickCancel();
@@ -190,7 +176,6 @@ const Oauth = () => {
}
}
};
-
const readonlyColumnsConfig: ReadOnlyConfigColumnsType =
useMemo(() => {
return [
@@ -273,7 +258,6 @@ const Oauth = () => {
span: 3,
dataIndex: 'scopes',
hidden: !oauthConfig?.enable_oauth2,
-
render: (val) => {
const scopes = val as string[];
return (
@@ -382,7 +366,6 @@ const Oauth = () => {
dataIndex: 'login_perm_expr',
hidden: !oauthConfig?.enable_oauth2
},
-
{
label: (
{
}
];
}, [oauthConfig?.enable_oauth2, t, baseTheme]);
-
return (
@@ -538,5 +520,4 @@ const Oauth = () => {
);
};
-
export default Oauth;
diff --git a/packages/base/src/page/System/LoginConnection/SMSSetting/__tests__/index.test.tsx b/packages/base/src/page/System/LoginConnection/SMSSetting/__tests__/index.test.tsx
index e691fc8e8..1642f6d93 100644
--- a/packages/base/src/page/System/LoginConnection/SMSSetting/__tests__/index.test.tsx
+++ b/packages/base/src/page/System/LoginConnection/SMSSetting/__tests__/index.test.tsx
@@ -6,7 +6,7 @@ import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery';
import SMSSetting from '..';
import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi';
import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
describe('base/System/GlobalSetting/SMSSetting', () => {
let getSmsConfigurationSpy: jest.SpyInstance;
diff --git a/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigExtraButtons.tsx b/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigExtraButtons.tsx
index e0ad64860..1caa31c5e 100644
--- a/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigExtraButtons.tsx
+++ b/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigExtraButtons.tsx
@@ -1,24 +1,22 @@
import { useTranslation } from 'react-i18next';
import { Space, Form, message } from 'antd';
-import { BasicInput } from '@actiontech/shared';
-import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm';
+import { BasicInput } from '@actiontech/dms-kit';
+import { FormItemLabel } from '@actiontech/dms-kit';
import { useRef, useState } from 'react';
import baseConfiguration from '@actiontech/shared/lib/api/base/service/Configuration';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
-import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style';
+import { ResponseCode } from '@actiontech/dms-kit';
+import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style';
import {
ConfigModifyBtn,
ConfigTestBtn,
ConfigTestPopoverForm
-} from '@actiontech/shared/lib/components/SystemConfigurationHub';
-
+} from '@actiontech/dms-kit';
export interface ConfigExtraButtonsProps {
isConfigClosed: boolean;
extraButtonsVisible: boolean;
handleClickModify: () => void;
enabled: boolean;
}
-
const ConfigExtraButtons = ({
isConfigClosed,
extraButtonsVisible,
@@ -26,20 +24,17 @@ const ConfigExtraButtons = ({
enabled
}: ConfigExtraButtonsProps) => {
const { t } = useTranslation();
-
const [messageApi, messageContextHolder] = message.useMessage();
-
- const [testForm] = Form.useForm<{ phone: string }>();
-
+ const [testForm] = Form.useForm<{
+ phone: string;
+ }>();
const testing = useRef(false);
const [testPopoverVisible, toggleTestPopoverVisible] = useState(false);
-
const testCodingConfiguration = async () => {
if (testing.current) {
return;
}
const values = await testForm.validateFields();
-
testing.current = true;
toggleTestPopoverVisible(false);
const hide = messageApi.loading(
@@ -69,7 +64,6 @@ const ConfigExtraButtons = ({
testForm.resetFields();
});
};
-
const onTestPopoverOpen = (open: boolean) => {
if (!enabled) {
return;
@@ -79,7 +73,6 @@ const ConfigExtraButtons = ({
}
toggleTestPopoverVisible(open);
};
-
return (
<>
{messageContextHolder}
@@ -99,8 +92,14 @@ const ConfigExtraButtons = ({
);
};
-
export default ConfigExtraButtons;
diff --git a/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigField.tsx b/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigField.tsx
index f4b00baa3..8b696b78e 100644
--- a/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigField.tsx
+++ b/packages/base/src/page/System/LoginConnection/SMSSetting/components/ConfigField.tsx
@@ -1,14 +1,8 @@
import { useTranslation } from 'react-i18next';
-
-import {
- CustomLabelContent,
- FormItemLabel
-} from '@actiontech/shared/lib/components/CustomForm';
-import { BasicInput } from '@actiontech/shared';
-
+import { CustomLabelContent, FormItemLabel } from '@actiontech/dms-kit';
+import { BasicInput } from '@actiontech/dms-kit';
const ConfigField = () => {
const { t } = useTranslation();
-
return (
<>
{
/>
}
name="url"
- rules={[{ required: true }]}
+ rules={[
+ {
+ required: true
+ }
+ ]}
>
{
/>
}
name="token"
- rules={[{ required: true }]}
+ rules={[
+ {
+ required: true
+ }
+ ]}
>
{
>
);
};
-
export default ConfigField;
diff --git a/packages/base/src/page/System/LoginConnection/SMSSetting/index.tsx b/packages/base/src/page/System/LoginConnection/SMSSetting/index.tsx
index bf1300760..53bf386cd 100644
--- a/packages/base/src/page/System/LoginConnection/SMSSetting/index.tsx
+++ b/packages/base/src/page/System/LoginConnection/SMSSetting/index.tsx
@@ -6,7 +6,7 @@ import ConfigExtraButtons from './components/ConfigExtraButtons';
import ConfigField from './components/ConfigField';
import { DmsApi } from '@actiontech/shared/lib/api';
import { IGetSmsConfigurationReplyItem } from '@actiontech/shared/lib/api/base/service/common';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { FormFields } from './index.type';
import { switchFieldName } from './index.data';
import {
@@ -16,7 +16,7 @@ import {
ConfigSubmitButtonField,
useConfigSwitchControls,
CustomLabelContent
-} from '@actiontech/shared';
+} from '@actiontech/dms-kit';
import {
PERMISSIONS,
PermissionControl
diff --git a/packages/base/src/page/System/PersonalizeSetting/index.test.tsx b/packages/base/src/page/System/PersonalizeSetting/index.test.tsx
index c4881a273..c73f528a7 100644
--- a/packages/base/src/page/System/PersonalizeSetting/index.test.tsx
+++ b/packages/base/src/page/System/PersonalizeSetting/index.test.tsx
@@ -9,7 +9,7 @@ import {
getBySelector
} from '@actiontech/shared/lib/testUtil/customQuery';
import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
describe('base/System/PersonalizeSetting', () => {
let requestGetBasicInfo: jest.SpyInstance;
diff --git a/packages/base/src/page/System/PersonalizeSetting/index.tsx b/packages/base/src/page/System/PersonalizeSetting/index.tsx
index 63ab9107a..e0332a138 100644
--- a/packages/base/src/page/System/PersonalizeSetting/index.tsx
+++ b/packages/base/src/page/System/PersonalizeSetting/index.tsx
@@ -2,47 +2,45 @@ import { useBoolean, useRequest } from 'ahooks';
import { useTranslation } from 'react-i18next';
import { useMemo } from 'react';
import { Spin } from 'antd';
-import { ConfigItem } from '@actiontech/shared';
+import { ConfigItem } from '@actiontech/dms-kit';
import {
ConfigFieldMapMeta,
EditInput,
ImageUploader,
LabelContent
-} from '@actiontech/shared/lib/components/ConfigItem';
+} from '@actiontech/dms-kit';
import SystemBasicTitle from '../components/BasicTitle';
-
import {
DMS_DEFAULT_WEB_LOGO_URL,
DMS_DEFAULT_WEB_TITLE
-} from '@actiontech/shared/lib/data/common';
-import useHideConfigInputNode from '@actiontech/shared/lib/components/ConfigItem/hooks/useHideConfigInputNode';
+} from '@actiontech/dms-kit';
+import useHideConfigInputNode from '@actiontech/dms-kit/es/components/ConfigItem/hooks/useHideConfigInputNode';
import useSystemConfig from '../../../hooks/useSystemConfig';
import BasicInfo from '@actiontech/shared/lib/api/base/service/BasicInfo';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { IPersonalizationParams } from '@actiontech/shared/lib/api/base/service/BasicInfo/index.d';
import { PERMISSIONS, usePermission } from '@actiontech/shared/lib/features';
-
const PersonalizeSetting: React.FC = () => {
const { t } = useTranslation();
-
const { checkActionPermission } = usePermission();
const [
titleFieldVisible,
{ setTrue: showTitleField, setFalse: hideTitleField }
] = useBoolean(false);
-
const fieldMetaMap = new Map<
keyof IPersonalizationParams,
ConfigFieldMapMeta
>([
- ['title', { hideField: hideTitleField }],
+ [
+ 'title',
+ {
+ hideField: hideTitleField
+ }
+ ],
['file', {}]
]);
-
useHideConfigInputNode(titleFieldVisible, hideTitleField);
-
const { syncWebTitleAndLogo } = useSystemConfig();
-
const {
data: basicInfo,
loading,
@@ -51,18 +49,14 @@ const PersonalizeSetting: React.FC = () => {
BasicInfo.GetBasicInfo().then((res) => {
const basicInfoRes = res.data.data;
if (basicInfoRes) syncWebTitleAndLogo(basicInfoRes);
-
return basicInfoRes ?? {};
})
);
-
const webTitleInPage = useMemo(() => {
return !!basicInfo?.title ? basicInfo.title : DMS_DEFAULT_WEB_TITLE;
}, [basicInfo]);
-
const [submitLoading, { setTrue: startSubmit, setFalse: submitFinish }] =
useBoolean();
-
const submitPersonalize = (
value: string | File,
fieldName: keyof IPersonalizationParams
@@ -88,7 +82,6 @@ const PersonalizeSetting: React.FC = () => {
submitFinish();
});
};
-
return (
@@ -145,5 +138,4 @@ const PersonalizeSetting: React.FC = () => {
);
};
-
export default PersonalizeSetting;
diff --git a/packages/base/src/page/System/ProcessConnection/CodingSetting/__tests__/index.test.tsx b/packages/base/src/page/System/ProcessConnection/CodingSetting/__tests__/index.test.tsx
index 645ae32f7..974145d86 100644
--- a/packages/base/src/page/System/ProcessConnection/CodingSetting/__tests__/index.test.tsx
+++ b/packages/base/src/page/System/ProcessConnection/CodingSetting/__tests__/index.test.tsx
@@ -6,7 +6,7 @@ import { getBySelector } from '@actiontech/shared/lib/testUtil/customQuery';
import CodingSetting from '..';
import { createSpySuccessResponse } from '@actiontech/shared/lib/testUtil/mockApi';
import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser';
-import { SystemRole } from '@actiontech/shared/lib/enum';
+import { SystemRole } from '@actiontech/dms-kit';
describe('base/System/ProcessConnection/CodingSetting', () => {
let getCodingConfigurationSpy: jest.SpyInstance;
diff --git a/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigExtraButtons.tsx b/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigExtraButtons.tsx
index f7fe554d8..395893176 100644
--- a/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigExtraButtons.tsx
+++ b/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigExtraButtons.tsx
@@ -1,24 +1,22 @@
import { useTranslation } from 'react-i18next';
import { Space, Form, message } from 'antd';
-import { BasicInput } from '@actiontech/shared';
-import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm';
+import { BasicInput } from '@actiontech/dms-kit';
+import { FormItemLabel } from '@actiontech/dms-kit';
import { useRef, useState } from 'react';
import configuration from '@actiontech/shared/lib/api/sqle/service/configuration';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
-import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style';
+import { ResponseCode } from '@actiontech/dms-kit';
+import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style';
import {
ConfigModifyBtn,
ConfigTestBtn,
ConfigTestPopoverForm
-} from '@actiontech/shared/lib/components/SystemConfigurationHub';
-
+} from '@actiontech/dms-kit';
export interface ConfigExtraButtonsProps {
isConfigClosed: boolean;
extraButtonsVisible: boolean;
handleClickModify: () => void;
enabled: boolean;
}
-
const ConfigExtraButtons = ({
isConfigClosed,
extraButtonsVisible,
@@ -26,25 +24,22 @@ const ConfigExtraButtons = ({
enabled
}: ConfigExtraButtonsProps) => {
const { t } = useTranslation();
-
const [messageApi, messageContextHolder] = message.useMessage();
-
const [testForm] = Form.useForm();
-
const testing = useRef(false);
const [testPopoverVisible, toggleTestPopoverVisible] = useState(false);
-
const testCodingConfiguration = async () => {
if (testing.current) {
return;
}
const values = await testForm.validateFields();
-
testing.current = true;
toggleTestPopoverVisible(false);
const hide = messageApi.loading(t('dmsSystem.codingDocking.testing'), 0);
configuration
- .testCodingConfigV1({ coding_project_name: values.codingProjectName })
+ .testCodingConfigV1({
+ coding_project_name: values.codingProjectName
+ })
.then((res) => {
if (res.data.code === ResponseCode.SUCCESS) {
if (res.data.data?.is_message_sent_normally) {
@@ -62,7 +57,6 @@ const ConfigExtraButtons = ({
testForm.resetFields();
});
};
-
const onTestPopoverOpen = (open: boolean) => {
if (!enabled) {
return;
@@ -72,7 +66,6 @@ const ConfigExtraButtons = ({
}
toggleTestPopoverVisible(open);
};
-
return (
<>
{messageContextHolder}
@@ -92,8 +85,14 @@ const ConfigExtraButtons = ({
);
};
-
export default ConfigExtraButtons;
diff --git a/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigField.tsx b/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigField.tsx
index e9b28d086..95005a5c7 100644
--- a/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigField.tsx
+++ b/packages/base/src/page/System/ProcessConnection/CodingSetting/components/ConfigField.tsx
@@ -1,18 +1,19 @@
import { useTranslation } from 'react-i18next';
-
-import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm';
-import { BasicInput } from '@actiontech/shared';
-
+import { FormItemLabel } from '@actiontech/dms-kit';
+import { BasicInput } from '@actiontech/dms-kit';
const ConfigField = () => {
const { t } = useTranslation();
-
return (
<>
{
className="has-required-style"
label={t('dmsSystem.codingDocking.accessToken')}
name="token"
- rules={[{ required: true }]}
+ rules={[
+ {
+ required: true
+ }
+ ]}
>
{
>
);
};
-
export default ConfigField;
diff --git a/packages/base/src/page/System/ProcessConnection/CodingSetting/index.tsx b/packages/base/src/page/System/ProcessConnection/CodingSetting/index.tsx
index 5cd0fe061..23a20ed1a 100644
--- a/packages/base/src/page/System/ProcessConnection/CodingSetting/index.tsx
+++ b/packages/base/src/page/System/ProcessConnection/CodingSetting/index.tsx
@@ -2,12 +2,12 @@ import { useTranslation } from 'react-i18next';
import { useBoolean, useRequest } from 'ahooks';
import { useCallback, useMemo } from 'react';
import { Form, Spin, Typography } from 'antd';
-import { CustomLabelContent } from '@actiontech/shared/lib/components/CustomForm';
+import { CustomLabelContent } from '@actiontech/dms-kit';
import ConfigExtraButtons from './components/ConfigExtraButtons';
import ConfigField from './components/ConfigField';
import configuration from '@actiontech/shared/lib/api/sqle/service/configuration';
import { ICodingConfigurationV1 } from '@actiontech/shared/lib/api/sqle/service/common';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { FormFields } from './index.type';
import { switchFieldName } from './index.data';
import {
@@ -20,7 +20,7 @@ import {
ConfigSwitch,
ConfigSubmitButtonField,
useConfigSwitchControls
-} from '@actiontech/shared';
+} from '@actiontech/dms-kit';
const CodingSetting: React.FC = () => {
const { t } = useTranslation();
diff --git a/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigExtraButtons.tsx b/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigExtraButtons.tsx
index 6f73baa04..0bff9198b 100644
--- a/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigExtraButtons.tsx
+++ b/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigExtraButtons.tsx
@@ -1,20 +1,16 @@
import { useTranslation } from 'react-i18next';
import { useRef } from 'react';
-
import { message, Space } from 'antd';
-import { BasicToolTip, BasicButton } from '@actiontech/shared';
-import { ConfigModifyBtn } from '@actiontech/shared/lib/components/SystemConfigurationHub';
-
+import { BasicToolTip, BasicButton } from '@actiontech/dms-kit';
+import { ConfigModifyBtn } from '@actiontech/dms-kit';
import configuration from '@actiontech/shared/lib/api/sqle/service/configuration';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { ThunderBoltFilled } from '@actiontech/icons';
-
export interface ConfigExtraButtonsProps {
isConfigClosed: boolean;
extraButtonsVisible: boolean;
handleClickModify: () => void;
}
-
const ConfigExtraButtons = ({
isConfigClosed,
extraButtonsVisible,
@@ -22,7 +18,6 @@ const ConfigExtraButtons = ({
}: ConfigExtraButtonsProps) => {
const { t } = useTranslation();
const [messageApi, messageContextHolder] = message.useMessage();
-
const testTing = useRef(false);
const testDingTalkConfiguration = () => {
if (testTing.current) {
@@ -46,7 +41,6 @@ const ConfigExtraButtons = ({
testTing.current = false;
});
};
-
return (
<>
{messageContextHolder}
@@ -66,5 +60,4 @@ const ConfigExtraButtons = ({
>
);
};
-
export default ConfigExtraButtons;
diff --git a/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigField.tsx b/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigField.tsx
index 2d0bfe9c5..83f18bf91 100644
--- a/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigField.tsx
+++ b/packages/base/src/page/System/ProcessConnection/DingTalkSetting/components/ConfigField.tsx
@@ -1,18 +1,19 @@
import { useTranslation } from 'react-i18next';
-
-import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm';
-import { BasicInput } from '@actiontech/shared';
-
+import { FormItemLabel } from '@actiontech/dms-kit';
+import { BasicInput } from '@actiontech/dms-kit';
const ConfigField = () => {
const { t } = useTranslation();
-
return (
<>
{
className="has-required-style"
label="AppSecret"
name="appSecret"
- rules={[{ required: true }]}
+ rules={[
+ {
+ required: true
+ }
+ ]}
>
{
>
);
};
-
export default ConfigField;
diff --git a/packages/base/src/page/System/ProcessConnection/DingTalkSetting/index.tsx b/packages/base/src/page/System/ProcessConnection/DingTalkSetting/index.tsx
index 4263da11b..d3be5b6a1 100644
--- a/packages/base/src/page/System/ProcessConnection/DingTalkSetting/index.tsx
+++ b/packages/base/src/page/System/ProcessConnection/DingTalkSetting/index.tsx
@@ -2,19 +2,19 @@ import { useTranslation } from 'react-i18next';
import { useBoolean, useRequest } from 'ahooks';
import { useCallback, useMemo } from 'react';
import { Form, Spin, Typography } from 'antd';
-import { CustomLabelContent } from '@actiontech/shared/lib/components/CustomForm';
+import { CustomLabelContent } from '@actiontech/dms-kit';
import {
ConfigSwitch,
ConfigSubmitButtonField,
useConfigRender,
useConfigSwitchControls,
ReadOnlyConfigColumnsType
-} from '@actiontech/shared/lib/components/SystemConfigurationHub';
+} from '@actiontech/dms-kit';
import ConfigField from './components/ConfigField';
import ConfigExtraButtons from './components/ConfigExtraButtons';
import configuration from '@actiontech/shared/lib/api/sqle/service/configuration';
import { IDingTalkConfigurationV1 } from '@actiontech/shared/lib/api/sqle/service/common';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { FormFields } from './index.type';
import { defaultFormData, switchFieldName } from './index.data';
import {
diff --git a/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigExtraButtons.tsx b/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigExtraButtons.tsx
index b5e329998..c4b38cc04 100644
--- a/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigExtraButtons.tsx
+++ b/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigExtraButtons.tsx
@@ -7,31 +7,25 @@ import {
RadioGroupProps,
Space
} from 'antd';
-import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style';
-import {
- FormItemLabel,
- FormItemNoLabel
-} from '@actiontech/shared/lib/components/CustomForm';
-import { BasicInput, EmptyBox } from '@actiontech/shared';
-import { phoneRule } from '@actiontech/shared/lib/utils/FormRule';
+import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style';
+import { FormItemLabel, FormItemNoLabel } from '@actiontech/dms-kit';
+import { BasicInput, EmptyBox } from '@actiontech/dms-kit';
+import { phoneRule } from '@actiontech/dms-kit';
import {
ConfigModifyBtn,
ConfigTestBtn,
ConfigTestPopoverForm
-} from '@actiontech/shared/lib/components/SystemConfigurationHub';
-
+} from '@actiontech/dms-kit';
import configuration from '@actiontech/shared/lib/api/sqle/service/configuration';
import { TestFeishuConfigurationReqV1AccountTypeEnum } from '@actiontech/shared/lib/api/sqle/service/common.enum';
import { TestFormFields } from '../index.type';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
-
+import { ResponseCode } from '@actiontech/dms-kit';
export interface ConfigExtraButtonsProps {
isConfigClosed: boolean;
extraButtonsVisible: boolean;
enabled: string | boolean;
handleClickModify: () => void;
}
-
const ConfigExtraButtons = ({
isConfigClosed,
extraButtonsVisible,
@@ -40,7 +34,6 @@ const ConfigExtraButtons = ({
}: ConfigExtraButtonsProps) => {
const { t } = useTranslation();
const [message, messageContextHolder] = messageApi.useMessage();
-
const [testForm] = Form.useForm();
const [testPopoverVisible, toggleTestPopoverVisible] = useState(false);
const [receiveType, setReceiveType] =
@@ -48,17 +41,14 @@ const ConfigExtraButtons = ({
TestFeishuConfigurationReqV1AccountTypeEnum.email
);
const testing = useRef(false);
-
const testLarkAuditConfiguration = async () => {
if (testing.current) {
return;
}
const values = await testForm.validateFields();
-
testing.current = true;
toggleTestPopoverVisible(false);
const hide = message.loading(t('dmsSystem.larkAudit.testing'), 0);
-
configuration
.testFeishuAuditConfigV1({
account:
@@ -84,18 +74,15 @@ const ConfigExtraButtons = ({
setReceiveType(TestFeishuConfigurationReqV1AccountTypeEnum.email);
});
};
-
const handleChangeReceiveType: RadioGroupProps['onChange'] = (e) => {
const type = e.target.value;
setReceiveType(type);
-
if (type === TestFeishuConfigurationReqV1AccountTypeEnum.email) {
testForm.resetFields(['receivePhone']);
} else {
testForm.resetFields(['receiveEmail']);
}
};
-
const onTestPopoverOpen = (open: boolean) => {
if (!enabled) {
return;
@@ -106,7 +93,6 @@ const ConfigExtraButtons = ({
}
toggleTestPopoverVisible(open);
};
-
return (
<>
{messageContextHolder}
@@ -129,7 +115,9 @@ const ConfigExtraButtons = ({
initialValue={
TestFeishuConfigurationReqV1AccountTypeEnum.email
}
- style={{ marginBottom: 0 }}
+ style={{
+ marginBottom: 0
+ }}
>
);
};
-
export default ConfigExtraButtons;
diff --git a/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigField.tsx b/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigField.tsx
index d102a0dbb..55b2d76a2 100644
--- a/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigField.tsx
+++ b/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/components/ConfigField.tsx
@@ -1,7 +1,6 @@
import { useTranslation } from 'react-i18next';
-import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm';
-import { BasicInput } from '@actiontech/shared';
-
+import { FormItemLabel } from '@actiontech/dms-kit';
+import { BasicInput } from '@actiontech/dms-kit';
const ConfigField = () => {
const { t } = useTranslation();
return (
@@ -10,7 +9,11 @@ const ConfigField = () => {
className="has-required-style"
label="App ID"
name="appKey"
- rules={[{ required: true }]}
+ rules={[
+ {
+ required: true
+ }
+ ]}
>
{
className="has-required-style"
label="App Secret"
name="appSecret"
- rules={[{ required: true }]}
+ rules={[
+ {
+ required: true
+ }
+ ]}
>
{
>
);
};
-
export default ConfigField;
diff --git a/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/index.ee.tsx b/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/index.ee.tsx
index db0c55a16..27f4b1b79 100644
--- a/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/index.ee.tsx
+++ b/packages/base/src/page/System/ProcessConnection/LarkAuditSetting/index.ee.tsx
@@ -8,14 +8,14 @@ import {
useConfigRender,
useConfigSwitchControls,
ReadOnlyConfigColumnsType
-} from '@actiontech/shared/lib/components/SystemConfigurationHub';
+} from '@actiontech/dms-kit';
import ConfigExtraButtons from './components/ConfigExtraButtons';
import ConfigField from './components/ConfigField';
-import { CustomLabelContent } from '@actiontech/shared/lib/components/CustomForm';
+import { CustomLabelContent } from '@actiontech/dms-kit';
import configuration from '@actiontech/shared/lib/api/sqle/service/configuration';
import { FormFields } from './index.type';
import { defaultFormData, switchFieldName } from './index.data';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { IFeishuConfigurationV1 } from '@actiontech/shared/lib/api/sqle/service/common';
import {
PERMISSIONS,
diff --git a/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigExtraButtons.tsx b/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigExtraButtons.tsx
index 0ec97757f..19eb5b97f 100644
--- a/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigExtraButtons.tsx
+++ b/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigExtraButtons.tsx
@@ -1,25 +1,23 @@
import { useTranslation } from 'react-i18next';
import { useRef, useState } from 'react';
import { Form, message, Space } from 'antd';
-import { BasicInput } from '@actiontech/shared';
+import { BasicInput } from '@actiontech/dms-kit';
import {
ConfigModifyBtn,
ConfigTestBtn,
ConfigTestPopoverForm
-} from '@actiontech/shared/lib/components/SystemConfigurationHub';
+} from '@actiontech/dms-kit';
import configuration from '@actiontech/shared/lib/api/sqle/service/configuration';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { TestFormFields } from '../index.type';
-import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style';
-import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm';
-
+import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style';
+import { FormItemLabel } from '@actiontech/dms-kit';
export interface ConfigExtraButtonsProps {
isConfigClosed: boolean;
extraButtonsVisible: boolean;
handleClickModify: () => void;
enabled: boolean;
}
-
const ConfigExtraButtons = ({
isConfigClosed,
extraButtonsVisible,
@@ -29,22 +27,20 @@ const ConfigExtraButtons = ({
const { t } = useTranslation();
const [messageApi, messageContextHolder] = message.useMessage();
const [testForm] = Form.useForm();
-
const testing = useRef(false);
const [testPopoverVisible, toggleTestPopoverVisible] = useState(false);
-
const testWechatAuditConfiguration = async () => {
if (testing.current) {
return;
}
const values = await testForm.validateFields();
-
testing.current = true;
toggleTestPopoverVisible(false);
const hide = messageApi.loading(t('dmsSystem.wechatAudit.testing'), 0);
-
configuration
- .testWechatAuditConfigV1({ wechat_id: values.wechatUserID })
+ .testWechatAuditConfigV1({
+ wechat_id: values.wechatUserID
+ })
.then((res) => {
if (res.data.code === ResponseCode.SUCCESS) {
if (res.data.data?.is_message_sent_normally) {
@@ -62,7 +58,6 @@ const ConfigExtraButtons = ({
testForm.resetFields();
});
};
-
const onTestPopoverOpen = (open: boolean) => {
if (!enabled) {
return;
@@ -72,7 +67,6 @@ const ConfigExtraButtons = ({
}
toggleTestPopoverVisible(open);
};
-
return (
<>
{messageContextHolder}
@@ -92,8 +86,14 @@ const ConfigExtraButtons = ({
);
};
-
export default ConfigExtraButtons;
diff --git a/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigField.tsx b/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigField.tsx
index 850bb1a7a..35967fecd 100644
--- a/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigField.tsx
+++ b/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/components/ConfigField.tsx
@@ -1,18 +1,19 @@
import { useTranslation } from 'react-i18next';
-
-import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm';
-import { BasicInput } from '@actiontech/shared';
-
+import { FormItemLabel } from '@actiontech/dms-kit';
+import { BasicInput } from '@actiontech/dms-kit';
const ConfigField = () => {
const { t } = useTranslation();
-
return (
<>
{
className="has-required-style"
label={t('dmsSystem.wechatAudit.corpSecret')}
name="corpSecret"
- rules={[{ required: true }]}
+ rules={[
+ {
+ required: true
+ }
+ ]}
>
{
>
);
};
-
export default ConfigField;
diff --git a/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/index.tsx b/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/index.tsx
index c908c5300..0db319c10 100644
--- a/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/index.tsx
+++ b/packages/base/src/page/System/ProcessConnection/WechatAuditSetting/index.tsx
@@ -2,18 +2,18 @@ import { useTranslation } from 'react-i18next';
import { useBoolean, useRequest } from 'ahooks';
import { useCallback, useMemo } from 'react';
import { Form, Spin, Typography } from 'antd';
-import { CustomLabelContent } from '@actiontech/shared/lib/components/CustomForm';
+import { CustomLabelContent } from '@actiontech/dms-kit';
import {
ConfigSwitch,
ConfigSubmitButtonField,
useConfigRender,
useConfigSwitchControls,
ReadOnlyConfigColumnsType
-} from '@actiontech/shared/lib/components/SystemConfigurationHub';
+} from '@actiontech/dms-kit';
import ConfigExtraButtons from './components/ConfigExtraButtons';
import ConfigField from './components/ConfigField';
import configuration from '@actiontech/shared/lib/api/sqle/service/configuration';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { FormFields } from './index.type';
import { defaultFormData, switchFieldName } from './index.data';
import { IWechatConfigurationV1 } from '@actiontech/shared/lib/api/sqle/service/common';
diff --git a/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigExtraButtons.tsx b/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigExtraButtons.tsx
index 6ee83dfa0..4a5f46a1a 100644
--- a/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigExtraButtons.tsx
+++ b/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigExtraButtons.tsx
@@ -2,31 +2,25 @@ import { useTranslation } from 'react-i18next';
import { useRef, useState } from 'react';
import { Form, message, Radio, RadioGroupProps, Space } from 'antd';
import { useForm } from 'antd/es/form/Form';
-import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style';
-import {
- FormItemLabel,
- FormItemNoLabel
-} from '@actiontech/shared/lib/components/CustomForm';
-import { BasicInput, EmptyBox } from '@actiontech/shared';
+import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style';
+import { FormItemLabel, FormItemNoLabel } from '@actiontech/dms-kit';
+import { BasicInput, EmptyBox } from '@actiontech/dms-kit';
import {
ConfigModifyBtn,
ConfigTestBtn,
ConfigTestPopoverForm
-} from '@actiontech/shared/lib/components/SystemConfigurationHub';
-import { phoneRule } from '@actiontech/shared/lib/utils/FormRule';
-
+} from '@actiontech/dms-kit';
+import { phoneRule } from '@actiontech/dms-kit';
import Configuration from '@actiontech/shared/lib/api/base/service/Configuration';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { TestFormFields } from '../index.type';
import { TestFeishuConfigurationAccountTypeEnum } from '@actiontech/shared/lib/api/base/service/common.enum';
-
export interface ConfigExtraButtonsProps {
enabled: string | boolean;
isConfigClosed: boolean;
extraButtonsVisible: boolean;
handleClickModify: () => void;
}
-
const ConfigExtraButtons = ({
enabled,
isConfigClosed,
@@ -35,14 +29,12 @@ const ConfigExtraButtons = ({
}: ConfigExtraButtonsProps) => {
const { t } = useTranslation();
const [messageApi, messageContextHolder] = message.useMessage();
-
const [testPopoverVisible, toggleTestPopoverVisible] = useState(false);
const [testForm] = useForm();
const [receiveType, setReceiveType] =
useState(
TestFeishuConfigurationAccountTypeEnum.email
);
-
const testing = useRef(false);
const testLarkConfiguration = async () => {
if (testing.current) {
@@ -80,7 +72,6 @@ const ConfigExtraButtons = ({
setReceiveType(TestFeishuConfigurationAccountTypeEnum.email);
});
};
-
const onTestPopoverOpen = (open: boolean) => {
if (!enabled) {
return;
@@ -91,11 +82,9 @@ const ConfigExtraButtons = ({
}
toggleTestPopoverVisible(open);
};
-
const handleChangeReceiveType: RadioGroupProps['onChange'] = (e) => {
const type = e.target.value;
setReceiveType(type);
-
if (type === TestFeishuConfigurationAccountTypeEnum.email) {
testForm.resetFields(['receivePhone']);
} else {
@@ -120,7 +109,9 @@ const ConfigExtraButtons = ({
name="receiveType"
label={t('dmsSystem.lark.receiveType')}
initialValue={TestFeishuConfigurationAccountTypeEnum.email}
- style={{ marginBottom: 0 }}
+ style={{
+ marginBottom: 0
+ }}
>
);
};
-
export default ConfigExtraButtons;
diff --git a/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigField.tsx b/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigField.tsx
index d84aa0745..6aacd80ce 100644
--- a/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigField.tsx
+++ b/packages/base/src/page/System/PushNotification/LarkSetting/conponents/ConfigField.tsx
@@ -1,18 +1,19 @@
import { useTranslation } from 'react-i18next';
-
-import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm';
-import { BasicInput } from '@actiontech/shared';
-
+import { FormItemLabel } from '@actiontech/dms-kit';
+import { BasicInput } from '@actiontech/dms-kit';
const ConfigField = () => {
const { t } = useTranslation();
-
return (
<>
{
className="has-required-style"
label="App Secret"
name="appSecret"
- rules={[{ required: true }]}
+ rules={[
+ {
+ required: true
+ }
+ ]}
>
{
>
);
};
-
export default ConfigField;
diff --git a/packages/base/src/page/System/PushNotification/LarkSetting/index.tsx b/packages/base/src/page/System/PushNotification/LarkSetting/index.tsx
index 842c9f02b..4b30f387d 100644
--- a/packages/base/src/page/System/PushNotification/LarkSetting/index.tsx
+++ b/packages/base/src/page/System/PushNotification/LarkSetting/index.tsx
@@ -9,11 +9,11 @@ import {
useConfigRender,
useConfigSwitchControls,
ReadOnlyConfigColumnsType
-} from '@actiontech/shared/lib/components/SystemConfigurationHub';
+} from '@actiontech/dms-kit';
import ConfigExtraButtons from './conponents/ConfigExtraButtons';
import ConfigField from './conponents/ConfigField';
import Configuration from '@actiontech/shared/lib/api/base/service/Configuration';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
+import { ResponseCode } from '@actiontech/dms-kit';
import { IFeishuConfigurationResData } from '@actiontech/shared/lib/api/base/service/common';
import { switchFieldName } from './index.data';
import {
diff --git a/packages/base/src/page/System/PushNotification/SMTPSetting/components/ConfigExtraButtons.tsx b/packages/base/src/page/System/PushNotification/SMTPSetting/components/ConfigExtraButtons.tsx
index b202ae15d..5cf2350e9 100644
--- a/packages/base/src/page/System/PushNotification/SMTPSetting/components/ConfigExtraButtons.tsx
+++ b/packages/base/src/page/System/PushNotification/SMTPSetting/components/ConfigExtraButtons.tsx
@@ -2,24 +2,22 @@ import { Form, message, Space } from 'antd';
import { useTranslation } from 'react-i18next';
import { useRef, useState } from 'react';
import { useForm } from 'antd/es/form/Form';
-import { formItemLayout } from '@actiontech/shared/lib/components/CustomForm/style';
-import { FormItemLabel } from '@actiontech/shared/lib/components/CustomForm';
-import { BasicInput } from '@actiontech/shared';
+import { formItemLayout } from '@actiontech/dms-kit/es/components/CustomForm/style';
+import { FormItemLabel } from '@actiontech/dms-kit';
+import { BasicInput } from '@actiontech/dms-kit';
import {
ConfigModifyBtn,
ConfigTestBtn,
ConfigTestPopoverForm
-} from '@actiontech/shared/lib/components/SystemConfigurationHub';
+} from '@actiontech/dms-kit';
import Configuration from '@actiontech/shared/lib/api/base/service/Configuration';
-import { ResponseCode } from '@actiontech/shared/lib/enum';
-
+import { ResponseCode } from '@actiontech/dms-kit';
export type typeConfigExtraButtons = {
isConfigClosed: boolean;
enabled: string | number | boolean;
extraButtonsVisible: boolean;
handleClickModify: () => void;
};
-
const ConfigExtraButtons = ({
isConfigClosed,
enabled,
@@ -27,14 +25,12 @@ const ConfigExtraButtons = ({
handleClickModify
}: typeConfigExtraButtons) => {
const { t } = useTranslation();
-
const [messageApi, messageContextHolder] = message.useMessage();
- const [testForm] = useForm<{ receiveEmail?: string }>();
-
+ const [testForm] = useForm<{
+ receiveEmail?: string;
+ }>();
const [testPopoverVisible, toggleTestPopoverVisible] = useState(false);
-
const testTing = useRef(false);
-
const onTestPopoverOpen = (open: boolean) => {
if (!enabled) {
return;
@@ -44,7 +40,6 @@ const ConfigExtraButtons = ({
}
toggleTestPopoverVisible(open);
};
-
const handleTest = async () => {
if (testTing.current) {
return;
@@ -68,7 +63,9 @@ const ConfigExtraButtons = ({
const resData = res.data?.data;
if (resData?.is_smtp_send_normal) {
messageApi.success(
- t('dmsSystem.smtp.testSuccess', { email: values.receiveEmail })
+ t('dmsSystem.smtp.testSuccess', {
+ email: values.receiveEmail
+ })
);
testForm.resetFields();
} else {
@@ -84,7 +81,6 @@ const ConfigExtraButtons = ({
testForm.resetFields();
});
};
-
return (
<>
{messageContextHolder}
@@ -101,7 +97,9 @@ const ConfigExtraButtons = ({