Browse Source

refactor hook export/import

Signed-off-by: ruiyi.jiang <ruiyi.jiang@zilliz.com>
ruiyi.jiang 1 year ago
parent
commit
8113a49959
33 changed files with 59 additions and 199 deletions
  1. 2 2
      client/src/components/customInput/Types.ts
  2. 7 0
      client/src/hooks/index.tsx
  3. 1 1
      client/src/pages/collections/Collection.tsx
  4. 1 2
      client/src/pages/collections/Collections.tsx
  5. 1 1
      client/src/pages/connect/AuthForm.tsx
  6. 1 1
      client/src/pages/database/Create.tsx
  7. 1 1
      client/src/pages/database/Database.tsx
  8. 0 140
      client/src/pages/database/Update.tsx
  9. 1 1
      client/src/pages/dialogs/CreateAliasDialog.tsx
  10. 1 1
      client/src/pages/dialogs/CreateCollectionDialog.tsx
  11. 1 1
      client/src/pages/dialogs/CreatePartitionDialog.tsx
  12. 1 1
      client/src/pages/dialogs/LoadCollectionDialog.tsx
  13. 1 1
      client/src/pages/dialogs/RenameCollectionDialog.tsx
  14. 1 1
      client/src/pages/overview/Overview.tsx
  15. 3 4
      client/src/pages/partitions/Partitions.tsx
  16. 3 7
      client/src/pages/preview/Preview.tsx
  17. 3 4
      client/src/pages/query/Query.tsx
  18. 1 1
      client/src/pages/schema/Create.tsx
  19. 1 1
      client/src/pages/schema/Schema.tsx
  20. 2 2
      client/src/pages/search/SearchParams.tsx
  21. 6 4
      client/src/pages/search/VectorSearch.tsx
  22. 1 1
      client/src/pages/system/NodeListView.tsx
  23. 1 2
      client/src/pages/system/SystemView.tsx
  24. 5 6
      client/src/pages/systemHealthy/SystemHealthyView.tsx
  25. 1 1
      client/src/pages/systemHealthy/ThresholdSetting.tsx
  26. 1 1
      client/src/pages/user/CreateUser.tsx
  27. 1 1
      client/src/pages/user/Roles.tsx
  28. 1 1
      client/src/pages/user/Update.tsx
  29. 1 1
      client/src/pages/user/UpdateRoleDialog.tsx
  30. 1 1
      client/src/pages/user/User.tsx
  31. 1 1
      client/src/pages/user/Users.tsx
  32. 1 1
      client/src/types/Common.ts
  33. 5 5
      client/src/utils/Form.ts

+ 2 - 2
client/src/components/customInput/Types.ts

@@ -1,7 +1,7 @@
 import { ReactElement } from 'react';
 import { ReactElement } from 'react';
 import { InputLabelProps } from '@material-ui/core';
 import { InputLabelProps } from '@material-ui/core';
-import { IValidationItem } from '../../hooks/Form';
-import { IExtraParam, ValidType } from '../../utils/Validation';
+import { IValidationItem } from '@/hooks';
+import { IExtraParam, ValidType } from '@/utils/Validation';
 
 
 export type InputType = 'icon' | 'adornment' | 'text' | undefined;
 export type InputType = 'icon' | 'adornment' | 'text' | undefined;
 export type VariantType = 'filled' | 'outlined' | 'standard';
 export type VariantType = 'filled' | 'outlined' | 'standard';

+ 7 - 0
client/src/hooks/index.tsx

@@ -0,0 +1,7 @@
+export * from './Dialog';
+export * from './Form';
+export * from './Navigation';
+export * from './Pagination';
+export * from './Result';
+export * from './SystemView';
+export * from './TimeTravel';

+ 1 - 1
client/src/pages/collections/Collection.tsx

@@ -3,7 +3,7 @@ import { useNavigate, useLocation, useParams } from 'react-router-dom';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import { makeStyles, Theme } from '@material-ui/core';
 import { makeStyles, Theme } from '@material-ui/core';
 import { authContext } from '@/context';
 import { authContext } from '@/context';
-import { useNavigationHook } from '@/hooks/Navigation';
+import { useNavigationHook } from '@/hooks';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import CustomTabList from '@/components/customTabList/CustomTabList';
 import CustomTabList from '@/components/customTabList/CustomTabList';
 import { ITab } from '@/components/customTabList/Types';
 import { ITab } from '@/components/customTabList/Types';

+ 1 - 2
client/src/pages/collections/Collections.tsx

@@ -9,13 +9,12 @@ import {
   databaseContext,
   databaseContext,
   webSocketContext,
   webSocketContext,
 } from '@/context';
 } from '@/context';
-import { useNavigationHook } from '@/hooks/Navigation';
+import { useNavigationHook, usePaginationHook } from '@/hooks';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import AttuGrid from '@/components/grid/Grid';
 import AttuGrid from '@/components/grid/Grid';
 import CustomToolBar from '@/components/grid/ToolBar';
 import CustomToolBar from '@/components/grid/ToolBar';
 import { CollectionView, InsertDataParam } from './Types';
 import { CollectionView, InsertDataParam } from './Types';
 import { ColDefinitionsType, ToolBarConfig } from '@/components/grid/Types';
 import { ColDefinitionsType, ToolBarConfig } from '@/components/grid/Types';
-import { usePaginationHook } from '@/hooks/Pagination';
 import icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
 import EmptyCard from '@/components/cards/EmptyCard';
 import EmptyCard from '@/components/cards/EmptyCard';
 import Status from '@/components/status/Status';
 import Status from '@/components/status/Status';

+ 1 - 1
client/src/pages/connect/AuthForm.tsx

@@ -5,7 +5,7 @@ import CustomButton from '@/components/customButton/CustomButton';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomInput from '@/components/customInput/CustomInput';
 import icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { ITextfieldConfig } from '@/components/customInput/Types';
-import { useFormValidation } from '@/hooks/Form';
+import { useFormValidation } from '@/hooks';
 import { formatForm } from '@/utils/Form';
 import { formatForm } from '@/utils/Form';
 import { MilvusHttp } from '@/http/Milvus';
 import { MilvusHttp } from '@/http/Milvus';
 import { useNavigate } from 'react-router-dom';
 import { useNavigate } from 'react-router-dom';

+ 1 - 1
client/src/pages/database/Create.tsx

@@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomInput from '@/components/customInput/CustomInput';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { ITextfieldConfig } from '@/components/customInput/Types';
-import { useFormValidation } from '@/hooks/Form';
+import { useFormValidation } from '@/hooks';
 import { formatForm } from '@/utils/Form';
 import { formatForm } from '@/utils/Form';
 import { CreateDatabaseProps, CreateDatabaseParams } from './Types';
 import { CreateDatabaseProps, CreateDatabaseParams } from './Types';
 
 

+ 1 - 1
client/src/pages/database/Database.tsx

@@ -10,7 +10,7 @@ import {
 } from './Types';
 } from './Types';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
-import { useNavigationHook } from '@/hooks/Navigation';
+import { useNavigationHook } from '@/hooks';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import CreateUser from './Create';
 import CreateUser from './Create';
 
 

+ 0 - 140
client/src/pages/database/Update.tsx

@@ -1,140 +0,0 @@
-import { makeStyles, Theme } from '@material-ui/core';
-import { FC, useMemo, useState } from 'react';
-import { useTranslation } from 'react-i18next';
-import DialogTemplate from '@/components/customDialog/DialogTemplate';
-import CustomInput from '@/components/customInput/CustomInput';
-import { ITextfieldConfig } from '@/components/customInput/Types';
-import { useFormValidation } from '@/hooks/Form';
-import { formatForm } from '@/utils/Form';
-import { UpdateUserParams, UpdateUserProps } from './Types';
-
-const useStyles = makeStyles((theme: Theme) => ({
-  input: {
-    margin: theme.spacing(3, 0, 0.5),
-  },
-}));
-
-const UpdateUser: FC<UpdateUserProps> = ({
-  handleClose,
-  handleUpdate,
-  username,
-}) => {
-  const { t: userTrans } = useTranslation('user');
-  const { t: btnTrans } = useTranslation('btn');
-  const { t: warningTrans } = useTranslation('warning');
-
-  const [form, setForm] = useState<
-    Omit<UpdateUserParams, 'username'> & { confirmPassword: string }
-  >({
-    oldPassword: '',
-    newPassword: '',
-    confirmPassword: '',
-  });
-  const checkedForm = useMemo(() => {
-    const { oldPassword, newPassword } = form;
-    return formatForm({ oldPassword, newPassword });
-  }, [form]);
-  const { validation, checkIsValid, disabled } = useFormValidation(checkedForm);
-
-  const classes = useStyles();
-
-  const handleInputChange = (
-    key: 'oldPassword' | 'newPassword' | 'confirmPassword',
-    value: string
-  ) => {
-    setForm(v => ({ ...v, [key]: value }));
-  };
-
-  const createConfigs: ITextfieldConfig[] = [
-    {
-      label: userTrans('oldPassword'),
-      key: 'oldPassword',
-      onChange: (value: string) => handleInputChange('oldPassword', value),
-      variant: 'filled',
-      className: classes.input,
-      placeholder: userTrans('oldPassword'),
-      fullWidth: true,
-      validations: [
-        {
-          rule: 'require',
-          errorText: warningTrans('required', {
-            name: userTrans('oldPassword'),
-          }),
-        },
-      ],
-      type: 'password',
-      defaultValue: form.oldPassword,
-    },
-    {
-      label: userTrans('newPassword'),
-      key: 'newPassword',
-      onChange: (value: string) => handleInputChange('newPassword', value),
-      variant: 'filled',
-      className: classes.input,
-      placeholder: userTrans('newPassword'),
-      fullWidth: true,
-      validations: [
-        {
-          rule: 'require',
-          errorText: warningTrans('required', {
-            name: userTrans('newPassword'),
-          }),
-        },
-      ],
-      type: 'password',
-      defaultValue: form.newPassword,
-    },
-    {
-      label: userTrans('confirmPassword'),
-      key: 'confirmPassword',
-      onChange: (value: string) => handleInputChange('confirmPassword', value),
-      variant: 'filled',
-      className: classes.input,
-      placeholder: userTrans('confirmPassword'),
-      fullWidth: true,
-      validations: [
-        {
-          rule: 'confirm',
-          extraParam: {
-            compareValue: form.newPassword,
-          },
-          errorText: userTrans('isNotSame'),
-        },
-      ],
-      type: 'password',
-      defaultValue: form.confirmPassword,
-    },
-  ];
-
-  const handleUpdateUser = () => {
-    handleUpdate({
-      username,
-      newPassword: form.newPassword,
-      oldPassword: form.oldPassword,
-    });
-  };
-
-  return (
-    <DialogTemplate
-      title={userTrans('updateTitle')}
-      handleClose={handleClose}
-      confirmLabel={btnTrans('create')}
-      handleConfirm={handleUpdateUser}
-      confirmDisabled={disabled}
-    >
-      <>
-        {createConfigs.map(v => (
-          <CustomInput
-            type="text"
-            textConfig={v}
-            checkValid={checkIsValid}
-            validInfo={validation}
-            key={v.label}
-          />
-        ))}
-      </>
-    </DialogTemplate>
-  );
-};
-
-export default UpdateUser;

+ 1 - 1
client/src/pages/dialogs/CreateAliasDialog.tsx

@@ -5,7 +5,7 @@ import { rootContext } from '@/context';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomInput from '@/components/customInput/CustomInput';
 import { formatForm } from '@/utils/Form';
 import { formatForm } from '@/utils/Form';
-import { useFormValidation } from '@/hooks/Form';
+import { useFormValidation } from '@/hooks';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { CollectionHttp } from '@/http/Collection';
 import { CollectionHttp } from '@/http/Collection';
 import { CreateAliasProps } from './Types';
 import { CreateAliasProps } from './Types';

+ 1 - 1
client/src/pages/dialogs/CreateCollectionDialog.tsx

@@ -6,7 +6,7 @@ import CustomInput from '@/components/customInput/CustomInput';
 import CustomSelector from '@/components/customSelector/CustomSelector';
 import CustomSelector from '@/components/customSelector/CustomSelector';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
-import { useFormValidation } from '@/hooks/Form';
+import { useFormValidation } from '@/hooks';
 import { formatForm } from '@/utils/Form';
 import { formatForm } from '@/utils/Form';
 import { TypeEnum } from '@/utils/Validation';
 import { TypeEnum } from '@/utils/Validation';
 import CreateFields from '../collections/CreateFields';
 import CreateFields from '../collections/CreateFields';

+ 1 - 1
client/src/pages/dialogs/CreatePartitionDialog.tsx

@@ -5,7 +5,7 @@ import { rootContext } from '@/context';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomInput from '@/components/customInput/CustomInput';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { ITextfieldConfig } from '@/components/customInput/Types';
-import { useFormValidation } from '@/hooks/Form';
+import { useFormValidation } from '@/hooks';
 import { formatForm } from '@/utils/Form';
 import { formatForm } from '@/utils/Form';
 import { PartitionCreateProps } from './Types';
 import { PartitionCreateProps } from './Types';
 import { PartitionManageParam } from '../partitions/Types';
 import { PartitionManageParam } from '../partitions/Types';

+ 1 - 1
client/src/pages/dialogs/LoadCollectionDialog.tsx

@@ -9,7 +9,7 @@ import {
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import { authContext, rootContext } from '@/context';
 import { authContext, rootContext } from '@/context';
 import { CollectionHttp } from '@/http/Collection';
 import { CollectionHttp } from '@/http/Collection';
-import { useFormValidation } from '@/hooks/Form';
+import { useFormValidation } from '@/hooks';
 import { formatForm } from '@/utils/Form';
 import { formatForm } from '@/utils/Form';
 import { parseJson, getNode } from '@/utils/Metric';
 import { parseJson, getNode } from '@/utils/Metric';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomInput from '@/components/customInput/CustomInput';

+ 1 - 1
client/src/pages/dialogs/RenameCollectionDialog.tsx

@@ -5,7 +5,7 @@ import { rootContext } from '@/context';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomInput from '@/components/customInput/CustomInput';
 import { formatForm } from '@/utils/Form';
 import { formatForm } from '@/utils/Form';
-import { useFormValidation } from '@/hooks/Form';
+import { useFormValidation } from '@/hooks';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { CollectionHttp } from '@/http/Collection';
 import { CollectionHttp } from '@/http/Collection';
 import { RenameCollectionProps } from './Types';
 import { RenameCollectionProps } from './Types';

+ 1 - 1
client/src/pages/overview/Overview.tsx

@@ -6,7 +6,7 @@ import EmptyCard from '@/components/cards/EmptyCard';
 import icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
 import { WS_EVENTS, WS_EVENTS_TYPE } from '@/consts/Http';
 import { WS_EVENTS, WS_EVENTS_TYPE } from '@/consts/Http';
 import { LOADING_STATE } from '@/consts/Milvus';
 import { LOADING_STATE } from '@/consts/Milvus';
-import { useNavigationHook } from '@/hooks/Navigation';
+import { useNavigationHook } from '@/hooks';
 import { CollectionHttp } from '@/http/Collection';
 import { CollectionHttp } from '@/http/Collection';
 import { MilvusHttp } from '@/http/Milvus';
 import { MilvusHttp } from '@/http/Milvus';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import { ALL_ROUTER_TYPES } from '@/router/Types';

+ 3 - 4
client/src/pages/partitions/Partitions.tsx

@@ -1,17 +1,15 @@
 import { makeStyles, Theme } from '@material-ui/core';
 import { makeStyles, Theme } from '@material-ui/core';
 import { FC, useContext, useEffect, useState } from 'react';
 import { FC, useContext, useEffect, useState } from 'react';
 import { useSearchParams } from 'react-router-dom';
 import { useSearchParams } from 'react-router-dom';
-import { PartitionView } from './Types';
+import Highlighter from 'react-highlight-words';
 import AttuGrid from '@/components/grid/Grid';
 import AttuGrid from '@/components/grid/Grid';
 import { ColDefinitionsType, ToolBarConfig } from '@/components/grid/Types';
 import { ColDefinitionsType, ToolBarConfig } from '@/components/grid/Types';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { usePaginationHook } from '@/hooks/Pagination';
+import { usePaginationHook, useInsertDialogHook } from '@/hooks';
 import icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
 import CustomToolTip from '@/components/customToolTip/CustomToolTip';
 import CustomToolTip from '@/components/customToolTip/CustomToolTip';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
 import { PartitionHttp } from '@/http/Partition';
 import { PartitionHttp } from '@/http/Partition';
-import Highlighter from 'react-highlight-words';
-import { useInsertDialogHook } from '@/hooks/Dialog';
 import InsertContainer from '../dialogs/insert/Dialog';
 import InsertContainer from '../dialogs/insert/Dialog';
 import { CollectionHttp } from '@/http/Collection';
 import { CollectionHttp } from '@/http/Collection';
 import { FieldHttp } from '@/http/Field';
 import { FieldHttp } from '@/http/Field';
@@ -20,6 +18,7 @@ import { InsertDataParam } from '../collections/Types';
 import { MilvusHttp } from '@/http/Milvus';
 import { MilvusHttp } from '@/http/Milvus';
 import CreatePartitionDialog from '../dialogs/CreatePartitionDialog';
 import CreatePartitionDialog from '../dialogs/CreatePartitionDialog';
 import DropPartitionDialog from '../dialogs/DropPartitionDialog';
 import DropPartitionDialog from '../dialogs/DropPartitionDialog';
+import { PartitionView } from './Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

+ 3 - 7
client/src/pages/preview/Preview.tsx

@@ -5,16 +5,12 @@ import { getQueryStyles } from '../query/Styles';
 import { CollectionHttp } from '@/http/Collection';
 import { CollectionHttp } from '@/http/Collection';
 import { FieldHttp } from '@/http/Field';
 import { FieldHttp } from '@/http/Field';
 import { IndexHttp } from '@/http/Index';
 import { IndexHttp } from '@/http/Index';
-import { usePaginationHook } from '@/hooks/Pagination';
+import { usePaginationHook, useSearchResult } from '@/hooks';
 import { ToolBarConfig } from '@/components/grid/Types';
 import { ToolBarConfig } from '@/components/grid/Types';
 import CustomToolBar from '@/components/grid/ToolBar';
 import CustomToolBar from '@/components/grid/ToolBar';
 import { generateVector } from '@/utils/Common';
 import { generateVector } from '@/utils/Common';
-import { DataTypeEnum } from '../../pages/collections/Types';
-import { useSearchResult } from '@/hooks/Result';
-import {
-  INDEX_CONFIG,
-  DEFAULT_SEARCH_PARAM_VALUE_MAP,
-} from '../../consts/Milvus';
+import { DataTypeEnum } from '@/pages/collections/Types';
+import { INDEX_CONFIG, DEFAULT_SEARCH_PARAM_VALUE_MAP } from '@/consts/Milvus';
 
 
 const Preview: FC<{
 const Preview: FC<{
   collectionName: string;
   collectionName: string;

+ 3 - 4
client/src/pages/query/Query.tsx

@@ -8,19 +8,18 @@ import icons from '@/components/icons/Icons';
 import CustomButton from '@/components/customButton/CustomButton';
 import CustomButton from '@/components/customButton/CustomButton';
 import AttuGrid from '@/components/grid/Grid';
 import AttuGrid from '@/components/grid/Grid';
 import { ToolBarConfig } from '@/components/grid/Types';
 import { ToolBarConfig } from '@/components/grid/Types';
+import { saveAs } from 'file-saver';
 import { getQueryStyles } from './Styles';
 import { getQueryStyles } from './Styles';
 import Filter from '@/components/advancedSearch';
 import Filter from '@/components/advancedSearch';
 import { CollectionHttp } from '@/http/Collection';
 import { CollectionHttp } from '@/http/Collection';
 import { FieldHttp } from '@/http/Field';
 import { FieldHttp } from '@/http/Field';
-import { usePaginationHook } from '@/hooks/Pagination';
-// import { useTimeTravelHook } from '@/hooks/TimeTravel';
+import { usePaginationHook, useSearchResult } from '@/hooks';
+// import { useTimeTravelHook } from '@/hooks';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import CustomToolBar from '@/components/grid/ToolBar';
 import CustomToolBar from '@/components/grid/ToolBar';
 // import { CustomDatePicker } from '@/components/customDatePicker/CustomDatePicker';
 // import { CustomDatePicker } from '@/components/customDatePicker/CustomDatePicker';
-import { saveAs } from 'file-saver';
 import { DataTypeStringEnum } from '../collections/Types';
 import { DataTypeStringEnum } from '../collections/Types';
 import { getLabelDisplayedRows } from '../search/Utils';
 import { getLabelDisplayedRows } from '../search/Utils';
-import { useSearchResult } from '@/hooks/Result';
 
 
 const Query: FC<{
 const Query: FC<{
   collectionName: string;
   collectionName: string;

+ 1 - 1
client/src/pages/schema/Create.tsx

@@ -10,7 +10,7 @@ import {
   INDEX_OPTIONS_MAP,
   INDEX_OPTIONS_MAP,
   METRIC_TYPES_VALUES,
   METRIC_TYPES_VALUES,
 } from '../../consts/Milvus';
 } from '../../consts/Milvus';
-import { useFormValidation } from '@/hooks/Form';
+import { useFormValidation } from '@/hooks';
 import { getCreateIndexJSCode } from '@/utils/code/Js';
 import { getCreateIndexJSCode } from '@/utils/code/Js';
 import { getCreateIndexPYCode } from '@/utils/code/Py';
 import { getCreateIndexPYCode } from '@/utils/code/Py';
 import { getCreateIndexJavaCode } from '@/utils/code/Java';
 import { getCreateIndexJavaCode } from '@/utils/code/Java';

+ 1 - 1
client/src/pages/schema/Schema.tsx

@@ -3,7 +3,7 @@ import { FC, useCallback, useEffect, useState } from 'react';
 import AttuGrid from '@/components/grid/Grid';
 import AttuGrid from '@/components/grid/Grid';
 import { ColDefinitionsType } from '@/components/grid/Types';
 import { ColDefinitionsType } from '@/components/grid/Types';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { usePaginationHook } from '@/hooks/Pagination';
+import { usePaginationHook } from '@/hooks';
 import icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
 import { FieldHttp } from '@/http/Field';
 import { FieldHttp } from '@/http/Field';
 import { FieldView } from './Types';
 import { FieldView } from './Types';

+ 2 - 2
client/src/pages/search/SearchParams.tsx

@@ -11,9 +11,9 @@ import {
   INDEX_CONFIG,
   INDEX_CONFIG,
   METRIC_OPTIONS_MAP,
   METRIC_OPTIONS_MAP,
   searchKeywordsType,
   searchKeywordsType,
-} from '../../consts/Milvus';
+} from '@/consts/Milvus';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
-import { useFormValidation } from '@/hooks/Form';
+import { useFormValidation } from '@/hooks';
 import { formatForm } from '@/utils/Form';
 import { formatForm } from '@/utils/Form';
 import { SearchParamInputConfig, SearchParamsProps } from './Types';
 import { SearchParamInputConfig, SearchParamsProps } from './Types';
 
 

+ 6 - 4
client/src/pages/search/VectorSearch.tsx

@@ -3,10 +3,12 @@ import { TextField, Typography, Button } from '@material-ui/core';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import { useLocation } from 'react-router-dom';
 import { useLocation } from 'react-router-dom';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
-import { useNavigationHook } from '@/hooks/Navigation';
-import { useSearchResult } from '@/hooks/Result';
-import { usePaginationHook } from '@/hooks/Pagination';
-import { useTimeTravelHook } from '@/hooks/TimeTravel';
+import {
+  useNavigationHook,
+  useSearchResult,
+  usePaginationHook,
+  useTimeTravelHook,
+} from '@/hooks';
 import { databaseContext } from '@/context';
 import { databaseContext } from '@/context';
 import CustomSelector from '@/components/customSelector/CustomSelector';
 import CustomSelector from '@/components/customSelector/CustomSelector';
 import { ColDefinitionsType } from '@/components/grid/Types';
 import { ColDefinitionsType } from '@/components/grid/Types';

+ 1 - 1
client/src/pages/system/NodeListView.tsx

@@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next';
 import { makeStyles, Theme } from '@material-ui/core';
 import { makeStyles, Theme } from '@material-ui/core';
 import KeyboardArrowDown from '@material-ui/icons/KeyboardArrowDown';
 import KeyboardArrowDown from '@material-ui/icons/KeyboardArrowDown';
 import { DataGrid } from '@mui/x-data-grid';
 import { DataGrid } from '@mui/x-data-grid';
-import { useNavigationHook } from '@/hooks/Navigation';
+import { useNavigationHook } from '@/hooks';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import MiniTopo from './MiniTopology';
 import MiniTopo from './MiniTopology';
 import { getByteString, formatByteSize } from '@/utils/Format';
 import { getByteString, formatByteSize } from '@/utils/Format';

+ 1 - 2
client/src/pages/system/SystemView.tsx

@@ -2,10 +2,9 @@ import { useState, useEffect, useRef } from 'react';
 // import { useTranslation } from 'react-i18next';
 // import { useTranslation } from 'react-i18next';
 import { makeStyles, Theme } from '@material-ui/core';
 import { makeStyles, Theme } from '@material-ui/core';
 import clsx from 'clsx';
 import clsx from 'clsx';
-import { useNavigationHook } from '@/hooks/Navigation';
+import { useNavigationHook, useInterval } from '@/hooks';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import { MilvusHttp } from '@/http/Milvus';
 import { MilvusHttp } from '@/http/Milvus';
-import { useInterval } from '@/hooks/SystemView';
 import Topo from './Topology';
 import Topo from './Topology';
 import NodeListView from './NodeListView';
 import NodeListView from './NodeListView';
 // import LineChartCard from './LineChartCard';
 // import LineChartCard from './LineChartCard';

+ 5 - 6
client/src/pages/systemHealthy/SystemHealthyView.tsx

@@ -1,7 +1,7 @@
-import { makeStyles, Theme } from '@material-ui/core';
 import { useEffect, useMemo, useState } from 'react';
 import { useEffect, useMemo, useState } from 'react';
-import { useNavigationHook } from '@/hooks/Navigation';
-import { useInterval } from '@/hooks/SystemView';
+import { makeStyles, Theme } from '@material-ui/core';
+import { useTranslation } from 'react-i18next';
+import { useNavigationHook, useInterval } from '@/hooks';
 import { PrometheusHttp } from '@/http/Prometheus';
 import { PrometheusHttp } from '@/http/Prometheus';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import {
 import {
@@ -19,12 +19,11 @@ import { timeRangeOptions } from './consts';
 import {
 import {
   LAST_TIME_HEALTHY_THRESHOLD_CPU,
   LAST_TIME_HEALTHY_THRESHOLD_CPU,
   LAST_TIME_HEALTHY_THRESHOLD_MEMORY,
   LAST_TIME_HEALTHY_THRESHOLD_MEMORY,
-} from '../../consts/Localstorage';
+} from '@/consts/Localstorage';
 import {
 import {
   DEFAULT_HEALTHY_THRESHOLD_CPU,
   DEFAULT_HEALTHY_THRESHOLD_CPU,
   DEFAULT_HEALTHY_THRESHOLD_MEMORY,
   DEFAULT_HEALTHY_THRESHOLD_MEMORY,
-} from '../../consts/Prometheus';
-import { useTranslation } from 'react-i18next';
+} from '@/consts/Prometheus';
 
 
 const getStyles = makeStyles((theme: Theme) => ({
 const getStyles = makeStyles((theme: Theme) => ({
   root: {
   root: {

+ 1 - 1
client/src/pages/systemHealthy/ThresholdSetting.tsx

@@ -12,7 +12,7 @@ import {
 import { Dispatch, SetStateAction, useMemo, useState } from 'react';
 import { Dispatch, SetStateAction, useMemo, useState } from 'react';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomInput from '@/components/customInput/CustomInput';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { ITextfieldConfig } from '@/components/customInput/Types';
-import { useFormValidation } from '@/hooks/Form';
+import { useFormValidation } from '@/hooks';
 import { formatForm } from '@/utils/Form';
 import { formatForm } from '@/utils/Form';
 import { HEALTHY_STATUS_COLORS } from './consts';
 import { HEALTHY_STATUS_COLORS } from './consts';
 import { EHealthyStatus, IThreshold } from './Types';
 import { EHealthyStatus, IThreshold } from './Types';

+ 1 - 1
client/src/pages/user/CreateUser.tsx

@@ -11,7 +11,7 @@ import { useTranslation } from 'react-i18next';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomInput from '@/components/customInput/CustomInput';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { ITextfieldConfig } from '@/components/customInput/Types';
-import { useFormValidation } from '@/hooks/Form';
+import { useFormValidation } from '@/hooks';
 import { formatForm } from '@/utils/Form';
 import { formatForm } from '@/utils/Form';
 import { CreateUserProps, CreateUserParams } from './Types';
 import { CreateUserProps, CreateUserParams } from './Types';
 import { Option as RoleOption } from '@/components/customSelector/Types';
 import { Option as RoleOption } from '@/components/customSelector/Types';

+ 1 - 1
client/src/pages/user/Roles.tsx

@@ -7,7 +7,7 @@ import { ColDefinitionsType, ToolBarConfig } from '@/components/grid/Types';
 import { DeleteRoleParams, RoleData } from './Types';
 import { DeleteRoleParams, RoleData } from './Types';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
-import { useNavigationHook } from '@/hooks/Navigation';
+import { useNavigationHook } from '@/hooks';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import UpdateRoleDialog from './UpdateRoleDialog';
 import UpdateRoleDialog from './UpdateRoleDialog';
 
 

+ 1 - 1
client/src/pages/user/Update.tsx

@@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomInput from '@/components/customInput/CustomInput';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { ITextfieldConfig } from '@/components/customInput/Types';
-import { useFormValidation } from '@/hooks/Form';
+import { useFormValidation } from '@/hooks';
 import { formatForm } from '@/utils/Form';
 import { formatForm } from '@/utils/Form';
 import { UpdateUserParams, UpdateUserProps } from './Types';
 import { UpdateUserParams, UpdateUserProps } from './Types';
 
 

+ 1 - 1
client/src/pages/user/UpdateRoleDialog.tsx

@@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomInput from '@/components/customInput/CustomInput';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { ITextfieldConfig } from '@/components/customInput/Types';
-import { useFormValidation } from '@/hooks/Form';
+import { useFormValidation } from '@/hooks';
 import { formatForm } from '@/utils/Form';
 import { formatForm } from '@/utils/Form';
 import { UserHttp } from '@/http/User';
 import { UserHttp } from '@/http/User';
 import {
 import {

+ 1 - 1
client/src/pages/user/User.tsx

@@ -13,7 +13,7 @@ import {
 } from './Types';
 } from './Types';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
-import { useNavigationHook } from '@/hooks/Navigation';
+import { useNavigationHook } from '@/hooks';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import CreateUser from './CreateUser';
 import CreateUser from './CreateUser';
 import UpdateUserRole from './UpdateUserRole';
 import UpdateUserRole from './UpdateUserRole';

+ 1 - 1
client/src/pages/user/Users.tsx

@@ -2,7 +2,7 @@ import { useMemo } from 'react';
 import { useNavigate, useLocation } from 'react-router-dom';
 import { useNavigate, useLocation } from 'react-router-dom';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import { makeStyles, Theme } from '@material-ui/core';
 import { makeStyles, Theme } from '@material-ui/core';
-import { useNavigationHook } from '@/hooks/Navigation';
+import { useNavigationHook } from '@/hooks';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import CustomTabList from '@/components/customTabList/CustomTabList';
 import CustomTabList from '@/components/customTabList/CustomTabList';
 import { ITab } from '@/components/customTabList/Types';
 import { ITab } from '@/components/customTabList/Types';

+ 1 - 1
client/src/types/Common.ts

@@ -1,4 +1,4 @@
-import { IValidationItem } from '../hooks/Form';
+import { IValidationItem } from '@/hooks';
 
 
 export interface KeyValuePair {
 export interface KeyValuePair {
   label: string;
   label: string;

+ 5 - 5
client/src/utils/Form.ts

@@ -1,8 +1,8 @@
-import { Option } from '../components/customSelector/Types';
-import { METRIC_TYPES_VALUES } from '../consts/Milvus';
-import { IForm } from '../hooks/Form';
-import { DataTypeStringEnum } from '../pages/collections/Types';
-import { IndexType } from '../pages/schema/Types';
+import { Option } from '@/components/customSelector/Types';
+import { METRIC_TYPES_VALUES } from '@/consts/Milvus';
+import { IForm } from '@/hooks';
+import { DataTypeStringEnum } from '@/pages/collections/Types';
+import { IndexType } from '@/pages/schema/Types';
 
 
 interface IInfo {
 interface IInfo {
   [key: string]: any;
   [key: string]: any;