Browse Source

refactor: use `import type` instead of `import` (#742)

Signed-off-by: ryjiang <jiangruiyi@gmail.com>
ryjiang 5 months ago
parent
commit
05a4a3c8cc
100 changed files with 164 additions and 329 deletions
  1. 1 1
      client/src/components/DataListView/DataListView.tsx
  2. 3 3
      client/src/components/advancedSearch/Condition.tsx
  3. 3 3
      client/src/components/advancedSearch/ConditionGroup.tsx
  4. 1 1
      client/src/components/advancedSearch/CopyButton.tsx
  5. 1 1
      client/src/components/advancedSearch/Dialog.tsx
  6. 1 1
      client/src/components/advancedSearch/Filter.tsx
  7. 1 1
      client/src/components/advancedSearch/Types.ts
  8. 1 1
      client/src/components/cards/EmptyCard.tsx
  9. 1 1
      client/src/components/code/CodeBlock.tsx
  10. 1 1
      client/src/components/code/CodeView.tsx
  11. 1 1
      client/src/components/customDialog/CustomDialog.tsx
  12. 1 1
      client/src/components/customDialog/DialogTemplate.tsx
  13. 2 3
      client/src/components/customDrawer/CustomDrawer.tsx
  14. 1 1
      client/src/components/customInput/CustomInput.tsx
  15. 1 1
      client/src/components/customInput/SearchInput.tsx
  16. 1 1
      client/src/components/customSelector/CustomGroupedSelect.tsx
  17. 1 1
      client/src/components/customSelector/CustomMultiSelector.tsx
  18. 1 1
      client/src/components/customSelector/CustomSelector.tsx
  19. 1 1
      client/src/components/customSnackBar/CustomSnackBar.tsx
  20. 1 1
      client/src/components/customSwitch/CustomSwitch.tsx
  21. 1 1
      client/src/components/customTabList/CustomTabList.tsx
  22. 1 1
      client/src/components/customTabList/RouteTabList.tsx
  23. 1 1
      client/src/components/customToolTip/CustomToolTip.tsx
  24. 1 1
      client/src/components/grid/ActionBar.tsx
  25. 2 2
      client/src/components/grid/Grid.tsx
  26. 1 1
      client/src/components/grid/Table.tsx
  27. 1 1
      client/src/components/grid/TableEditableHead.tsx
  28. 1 1
      client/src/components/grid/TableHead.tsx
  29. 1 1
      client/src/components/grid/TablePaginationActions.tsx
  30. 1 1
      client/src/components/grid/TableSwitch.tsx
  31. 1 1
      client/src/components/grid/ToolBar.tsx
  32. 1 1
      client/src/components/icons/Icons.tsx
  33. 1 1
      client/src/components/menu/NavMenu.tsx
  34. 1 1
      client/src/components/menu/SimpleMenu.tsx
  35. 1 2
      client/src/components/status/Types.ts
  36. 1 1
      client/src/components/uploader/Uploader.tsx
  37. 12 0
      client/src/consts/Milvus.ts
  38. 5 0
      client/src/consts/Util.ts
  39. 1 1
      client/src/context/Auth.tsx
  40. 6 6
      client/src/context/Data.tsx
  41. 1 1
      client/src/context/Navigation.tsx
  42. 0 113
      client/src/context/Prometheus.tsx
  43. 5 5
      client/src/context/Root.tsx
  44. 1 1
      client/src/context/System.tsx
  45. 7 7
      client/src/context/Types.ts
  46. 0 1
      client/src/context/index.tsx
  47. 1 1
      client/src/hooks/Form.ts
  48. 2 1
      client/src/hooks/Navigation.tsx
  49. 1 1
      client/src/hooks/Pagination.ts
  50. 1 1
      client/src/hooks/Query.ts
  51. 0 33
      client/src/hooks/TimeTravel.ts
  52. 0 1
      client/src/hooks/index.tsx
  53. 2 2
      client/src/http/Collection.service.ts
  54. 3 3
      client/src/http/Data.service.ts
  55. 1 1
      client/src/http/Database.service.ts
  56. 1 1
      client/src/http/Milvus.service.ts
  57. 5 2
      client/src/http/Partition.service.ts
  58. 0 37
      client/src/http/Prometheus.service.ts
  59. 4 1
      client/src/http/Segment.service.ts
  60. 3 3
      client/src/http/User.service.ts
  61. 0 1
      client/src/http/index.ts
  62. 1 1
      client/src/pages/connect/AuthForm.tsx
  63. 1 1
      client/src/pages/databases/Databases.tsx
  64. 1 1
      client/src/pages/databases/collections/Aliases.tsx
  65. 2 2
      client/src/pages/databases/collections/CollectionColHeader.tsx
  66. 5 2
      client/src/pages/databases/collections/Collections.tsx
  67. 1 1
      client/src/pages/databases/collections/data/CollectionData.tsx
  68. 1 1
      client/src/pages/databases/collections/partitions/Partitions.tsx
  69. 1 3
      client/src/pages/databases/collections/partitions/Types.ts
  70. 1 1
      client/src/pages/databases/collections/properties/Properties.tsx
  71. 1 3
      client/src/pages/databases/collections/properties/Types.ts
  72. 2 2
      client/src/pages/databases/collections/schema/CreateForm.tsx
  73. 2 3
      client/src/pages/databases/collections/schema/CreateIndexDialog.tsx
  74. 2 2
      client/src/pages/databases/collections/schema/IndexTypeElement.tsx
  75. 1 1
      client/src/pages/databases/collections/schema/Schema.tsx
  76. 2 1
      client/src/pages/databases/collections/search/DataExplorer.tsx
  77. 1 1
      client/src/pages/databases/collections/search/DataPanel.tsx
  78. 1 1
      client/src/pages/databases/collections/search/PartitionsSelector.tsx
  79. 3 3
      client/src/pages/databases/collections/search/Search.tsx
  80. 1 1
      client/src/pages/databases/collections/search/SearchGlobalParams.tsx
  81. 2 2
      client/src/pages/databases/collections/search/SearchInputBox.tsx
  82. 1 1
      client/src/pages/databases/collections/search/utils.ts
  83. 3 3
      client/src/pages/databases/collections/segments/Segments.tsx
  84. 2 2
      client/src/pages/databases/tree/TreeContextMenu.tsx
  85. 1 1
      client/src/pages/databases/tree/types.ts
  86. 1 1
      client/src/pages/databases/types.ts
  87. 1 1
      client/src/pages/dialogs/CompactDialog.tsx
  88. 2 2
      client/src/pages/dialogs/CreateAliasDialog.tsx
  89. 4 4
      client/src/pages/dialogs/CreateCollectionDialog.tsx
  90. 1 1
      client/src/pages/dialogs/CreatePartitionDialog.tsx
  91. 1 1
      client/src/pages/dialogs/DropPartitionDialog.tsx
  92. 1 1
      client/src/pages/dialogs/DuplicateCollectionDialog.tsx
  93. 1 1
      client/src/pages/dialogs/EditEntityDialog.tsx
  94. 1 1
      client/src/pages/dialogs/EditPropertyDialog.tsx
  95. 1 1
      client/src/pages/dialogs/EmptyDataDialog.tsx
  96. 1 1
      client/src/pages/dialogs/FlushDialog.tsx
  97. 2 2
      client/src/pages/dialogs/ImportSampleDialog.tsx
  98. 1 1
      client/src/pages/dialogs/LoadCollectionDialog.tsx
  99. 1 1
      client/src/pages/dialogs/ReleaseCollectionDialog.tsx
  100. 2 2
      client/src/pages/dialogs/RenameCollectionDialog.tsx

+ 1 - 1
client/src/components/DataListView/DataListView.tsx

@@ -1,11 +1,11 @@
 import { Typography, Chip } from '@mui/material';
 import { Typography, Chip } from '@mui/material';
-import { CollectionFullObject } from '@server/types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
 import { Theme } from '@mui/material';
 import { Theme } from '@mui/material';
 import { formatFieldType } from '@/utils';
 import { formatFieldType } from '@/utils';
 import DataView from '@/components/DataView/DataView';
 import DataView from '@/components/DataView/DataView';
 import { DYNAMIC_FIELD } from '@/consts';
 import { DYNAMIC_FIELD } from '@/consts';
 import CopyButton from '@/components/advancedSearch/CopyButton';
 import CopyButton from '@/components/advancedSearch/CopyButton';
+import type { CollectionFullObject } from '@server/types';
 
 
 interface DataListViewProps {
 interface DataListViewProps {
   collection: CollectionFullObject;
   collection: CollectionFullObject;

+ 3 - 3
client/src/components/advancedSearch/Condition.tsx

@@ -2,11 +2,11 @@ import React, { useState, useEffect, FC, useMemo } from 'react';
 import { Theme, IconButton, TextField, SelectChangeEvent } from '@mui/material';
 import { Theme, IconButton, TextField, SelectChangeEvent } from '@mui/material';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
 import CloseIcon from '@mui/icons-material/Close';
 import CloseIcon from '@mui/icons-material/Close';
-import { ConditionProps } from './Types';
 import CustomSelector from '../customSelector/CustomSelector';
 import CustomSelector from '../customSelector/CustomSelector';
 import { LOGICAL_OPERATORS, DataTypeStringEnum } from '@/consts';
 import { LOGICAL_OPERATORS, DataTypeStringEnum } from '@/consts';
 import { formatValue, checkValue } from './utils';
 import { formatValue, checkValue } from './utils';
-import { FieldObject } from '@server/types';
+import type { ConditionProps } from './Types';
+import type { FieldObject } from '@server/types';
 
 
 const Condition: FC<ConditionProps> = props => {
 const Condition: FC<ConditionProps> = props => {
   const {
   const {
@@ -161,7 +161,7 @@ const useStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {
     minWidth: '466px',
     minWidth: '466px',
     minHeight: '62px',
     minHeight: '62px',
-    background:  theme.palette.background.paper,
+    background: theme.palette.background.paper,
     padding: theme.spacing(1.5, 2),
     padding: theme.spacing(1.5, 2),
     display: 'flex',
     display: 'flex',
     flexDirection: 'row',
     flexDirection: 'row',

+ 3 - 3
client/src/components/advancedSearch/ConditionGroup.tsx

@@ -6,7 +6,7 @@ import { ToggleButton, ToggleButtonGroup } from '@mui/lab';
 import ConditionItem from './Condition';
 import ConditionItem from './Condition';
 import icons from '../icons/Icons';
 import icons from '../icons/Icons';
 import CustomButton from '../customButton/CustomButton';
 import CustomButton from '../customButton/CustomButton';
-import {
+import type {
   ConditionGroupProps,
   ConditionGroupProps,
   BinaryLogicalOpProps,
   BinaryLogicalOpProps,
   AddConditionProps,
   AddConditionProps,
@@ -219,11 +219,11 @@ const useStyles = makeStyles((theme: Theme) => ({
     },
     },
     '& button.Mui-selected': {
     '& button.Mui-selected': {
       backgroundColor: theme.palette.background.default,
       backgroundColor: theme.palette.background.default,
-      color:  theme.palette.text.primary
+      color: theme.palette.text.primary,
     },
     },
     '& button.Mui-selected:hover': {
     '& button.Mui-selected:hover': {
       backgroundColor: theme.palette.background.default,
       backgroundColor: theme.palette.background.default,
-      color:  theme.palette.text.primary
+      color: theme.palette.text.primary,
     },
     },
   },
   },
 }));
 }));

+ 1 - 1
client/src/components/advancedSearch/CopyButton.tsx

@@ -1,10 +1,10 @@
 import React, { useState, FC } from 'react';
 import React, { useState, FC } from 'react';
 import { Theme } from '@mui/material';
 import { Theme } from '@mui/material';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
-import { CopyButtonProps } from './Types';
 import icons from '../icons/Icons';
 import icons from '../icons/Icons';
 import CustomIconButton from '../customButton/CustomIconButton';
 import CustomIconButton from '../customButton/CustomIconButton';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
+import type { CopyButtonProps } from './Types';
 
 
 const CopyIcon = icons.copyExpression;
 const CopyIcon = icons.copyExpression;
 
 

+ 1 - 1
client/src/components/advancedSearch/Dialog.tsx

@@ -15,7 +15,7 @@ import ConditionGroup from './ConditionGroup';
 import icons from '../icons/Icons';
 import icons from '../icons/Icons';
 import CopyBtn from './CopyButton';
 import CopyBtn from './CopyButton';
 // import DialogTemplate from '../customDialog/DialogTemplate';
 // import DialogTemplate from '../customDialog/DialogTemplate';
-import { DialogProps } from './Types';
+import type { DialogProps } from './Types';
 
 
 const AdvancedDialog = (props: DialogProps) => {
 const AdvancedDialog = (props: DialogProps) => {
   // i18n
   // i18n

+ 1 - 1
client/src/components/advancedSearch/Filter.tsx

@@ -5,8 +5,8 @@ import { useTranslation } from 'react-i18next';
 import icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
 import { generateIdByHash } from '@/utils/Common';
 import { generateIdByHash } from '@/utils/Common';
 import AdvancedDialog from './Dialog';
 import AdvancedDialog from './Dialog';
-import { FilterProps, ConditionData } from './Types';
 import CustomButton from '../customButton/CustomButton';
 import CustomButton from '../customButton/CustomButton';
+import type { FilterProps, ConditionData } from './Types';
 
 
 const Filter = forwardRef((props: FilterProps, ref) => {
 const Filter = forwardRef((props: FilterProps, ref) => {
   const {
   const {

+ 1 - 1
client/src/components/advancedSearch/Types.ts

@@ -1,4 +1,4 @@
-import { FieldObject } from '@server/types';
+import type { FieldObject } from '@server/types';
 
 
 export interface ConditionProps {
 export interface ConditionProps {
   others?: object;
   others?: object;

+ 1 - 1
client/src/components/cards/EmptyCard.tsx

@@ -2,7 +2,7 @@ import { FC } from 'react';
 import { Theme, Typography, CardContent } from '@mui/material';
 import { Theme, Typography, CardContent } from '@mui/material';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
 import StatusIcon, { LoadingType } from '@/components/status/StatusIcon';
 import StatusIcon, { LoadingType } from '@/components/status/StatusIcon';
-import { EmptyCardProps } from './Types';
+import type { EmptyCardProps } from './Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

+ 1 - 1
client/src/components/code/CodeBlock.tsx

@@ -4,8 +4,8 @@ import CopyButton from '../advancedSearch/CopyButton';
 import SyntaxHighlighter from 'react-syntax-highlighter';
 import SyntaxHighlighter from 'react-syntax-highlighter';
 import { vs2015, github } from 'react-syntax-highlighter/dist/esm/styles/hljs';
 import { vs2015, github } from 'react-syntax-highlighter/dist/esm/styles/hljs';
 import { FC } from 'react';
 import { FC } from 'react';
-import { CodeBlockProps } from './Types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { CodeBlockProps } from './Types';
 
 
 const getStyles = makeStyles((theme: Theme) => ({
 const getStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

+ 1 - 1
client/src/components/code/CodeView.tsx

@@ -2,10 +2,10 @@ import { Theme, Typography } from '@mui/material';
 import { FC } from 'react';
 import { FC } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import CustomTabList from '../customTabList/CustomTabList';
 import CustomTabList from '../customTabList/CustomTabList';
-import { ITab } from '../customTabList/Types';
 import CodeBlock from './CodeBlock';
 import CodeBlock from './CodeBlock';
 import { CodeViewProps } from './Types';
 import { CodeViewProps } from './Types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { ITab } from '../customTabList/Types';
 
 
 const getStyles = makeStyles((theme: Theme) => ({
 const getStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

+ 1 - 1
client/src/components/customDialog/CustomDialog.tsx

@@ -6,11 +6,11 @@ import {
   Theme,
   Theme,
   Typography,
   Typography,
 } from '@mui/material';
 } from '@mui/material';
-import { CustomDialogType } from './Types';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import CustomButton from '../customButton/CustomButton';
 import CustomButton from '../customButton/CustomButton';
 import CustomDialogTitle from './CustomDialogTitle';
 import CustomDialogTitle from './CustomDialogTitle';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { CustomDialogType } from './Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   paper: {
   paper: {

+ 1 - 1
client/src/components/customDialog/DialogTemplate.tsx

@@ -6,11 +6,11 @@ import {
   Theme,
   Theme,
   CircularProgress,
   CircularProgress,
 } from '@mui/material';
 } from '@mui/material';
-import { DialogContainerProps } from './Types';
 import CustomDialogTitle from './CustomDialogTitle';
 import CustomDialogTitle from './CustomDialogTitle';
 import CustomButton from '../customButton/CustomButton';
 import CustomButton from '../customButton/CustomButton';
 import CodeView from '../code/CodeView';
 import CodeView from '../code/CodeView';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { DialogContainerProps } from './Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

+ 2 - 3
client/src/components/customDrawer/CustomDrawer.tsx

@@ -1,6 +1,5 @@
-// CustomDrawer.tsx
-import React, { useContext } from 'react';
-import { Drawer, Box, Typography, Button } from '@mui/material';
+import { useContext } from 'react';
+import { Drawer, Box, Button } from '@mui/material';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
 
 
 const CustomDrawer = () => {
 const CustomDrawer = () => {

+ 1 - 1
client/src/components/customInput/CustomInput.tsx

@@ -14,7 +14,7 @@ import {
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
 import Icons from '../icons/Icons';
 import Icons from '../icons/Icons';
 import { ReactElement } from 'react';
 import { ReactElement } from 'react';
-import {
+import type {
   IAdornmentConfig,
   IAdornmentConfig,
   IIconConfig,
   IIconConfig,
   ITextfieldConfig,
   ITextfieldConfig,

+ 1 - 1
client/src/components/customInput/SearchInput.tsx

@@ -3,7 +3,7 @@ import { makeStyles } from '@mui/styles';
 import { useRef, FC, useState, useEffect, useMemo } from 'react';
 import { useRef, FC, useState, useEffect, useMemo } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import Icons from '../icons/Icons';
 import Icons from '../icons/Icons';
-import { SearchType } from './Types';
+import type { SearchType } from './Types';
 
 
 const useSearchStyles = makeStyles((theme: Theme) => ({
 const useSearchStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

+ 1 - 1
client/src/components/customSelector/CustomGroupedSelect.tsx

@@ -8,7 +8,7 @@ import {
 } from '@mui/material';
 } from '@mui/material';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
 import { FC } from 'react';
 import { FC } from 'react';
-import { GroupOption, ICustomGroupSelect } from './Types';
+import type { GroupOption, ICustomGroupSelect } from './Types';
 
 
 const getStyles = makeStyles((theme: Theme) => ({
 const getStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

+ 1 - 1
client/src/components/customSelector/CustomMultiSelector.tsx

@@ -7,8 +7,8 @@ import {
   Checkbox,
   Checkbox,
 } from '@mui/material';
 } from '@mui/material';
 import { withStyles } from '@mui/styles';
 import { withStyles } from '@mui/styles';
-import { CustomMultiSelectorType } from './Types';
 import { generateId } from '../../utils/Common';
 import { generateId } from '../../utils/Common';
+import type { CustomMultiSelectorType } from './Types';
 
 
 const CustomMenuItem = withStyles({
 const CustomMenuItem = withStyles({
   root: {
   root: {

+ 1 - 1
client/src/components/customSelector/CustomSelector.tsx

@@ -1,7 +1,7 @@
 import { FC } from 'react';
 import { FC } from 'react';
 import { FormControl, InputLabel, MenuItem, Select } from '@mui/material';
 import { FormControl, InputLabel, MenuItem, Select } from '@mui/material';
-import { CustomSelectorType } from './Types';
 import { generateId } from '../../utils/Common';
 import { generateId } from '../../utils/Common';
+import type { CustomSelectorType } from './Types';
 
 
 const CustomSelector: FC<CustomSelectorType> = props => {
 const CustomSelector: FC<CustomSelectorType> = props => {
   const {
   const {

+ 1 - 1
client/src/components/customSnackBar/CustomSnackBar.tsx

@@ -1,9 +1,9 @@
 import { forwardRef, FC } from 'react';
 import { forwardRef, FC } from 'react';
-import { CustomSnackBarType } from './Types';
 import MuiAlert from '@mui/material/Alert';
 import MuiAlert from '@mui/material/Alert';
 import { Snackbar, Theme, AlertProps } from '@mui/material';
 import { Snackbar, Theme, AlertProps } from '@mui/material';
 import Slide, { SlideProps } from '@mui/material/Slide';
 import Slide, { SlideProps } from '@mui/material/Slide';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { CustomSnackBarType } from './Types';
 
 
 // if we need to use slide component
 // if we need to use slide component
 // snackbar content must use forwardRef to wrapper it
 // snackbar content must use forwardRef to wrapper it

+ 1 - 1
client/src/components/customSwitch/CustomSwitch.tsx

@@ -1,8 +1,8 @@
 import { FormControlLabel, Switch, Theme } from '@mui/material';
 import { FormControlLabel, Switch, Theme } from '@mui/material';
 import { FC } from 'react';
 import { FC } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { CustomSwitchProps } from './Types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { CustomSwitchProps } from './Types';
 
 
 const getStyles = makeStyles((theme: Theme) => ({
 const getStyles = makeStyles((theme: Theme) => ({
   label: {
   label: {

+ 1 - 1
client/src/components/customTabList/CustomTabList.tsx

@@ -1,7 +1,7 @@
 import { Box, Tab, Tabs } from '@mui/material';
 import { Box, Tab, Tabs } from '@mui/material';
 import { FC, useState } from 'react';
 import { FC, useState } from 'react';
-import { ITabListProps, ITabPanel } from './Types';
 import { useStyles } from './style';
 import { useStyles } from './style';
+import type { ITabListProps, ITabPanel } from './Types';
 
 
 const TabPanel = (props: ITabPanel) => {
 const TabPanel = (props: ITabPanel) => {
   const { children, value, index, className = '', ...other } = props;
   const { children, value, index, className = '', ...other } = props;

+ 1 - 1
client/src/components/customTabList/RouteTabList.tsx

@@ -1,8 +1,8 @@
 import { Box, Tab, Tabs } from '@mui/material';
 import { Box, Tab, Tabs } from '@mui/material';
 import { FC } from 'react';
 import { FC } from 'react';
 import { useNavigate, useLocation } from 'react-router-dom';
 import { useNavigate, useLocation } from 'react-router-dom';
-import { ITabListProps, ITabPanel } from './Types';
 import { useStyles } from './style';
 import { useStyles } from './style';
+import type { ITabListProps, ITabPanel } from './Types';
 
 
 const TabPanel = (props: ITabPanel) => {
 const TabPanel = (props: ITabPanel) => {
   const { children, value, index, className = '', ...other } = props;
   const { children, value, index, className = '', ...other } = props;

+ 1 - 1
client/src/components/customToolTip/CustomToolTip.tsx

@@ -1,8 +1,8 @@
 import Tooltip from '@mui/material/Tooltip';
 import Tooltip from '@mui/material/Tooltip';
-import { CustomToolTipType } from './Types';
 import { FC } from 'react';
 import { FC } from 'react';
 import { Theme } from '@mui/material';
 import { Theme } from '@mui/material';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { CustomToolTipType } from './Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   tooltip: {},
   tooltip: {},

+ 1 - 1
client/src/components/grid/ActionBar.tsx

@@ -2,7 +2,7 @@ import { FC } from 'react';
 import { IconButton, Theme, Button, Typography } from '@mui/material';
 import { IconButton, Theme, Button, Typography } from '@mui/material';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
 import Icons from '../icons/Icons';
 import Icons from '../icons/Icons';
-import { ActionBarType } from './Types';
+import type { ActionBarType } from './Types';
 import CustomToolTip from '../customToolTip/CustomToolTip';
 import CustomToolTip from '../customToolTip/CustomToolTip';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({

+ 2 - 2
client/src/components/grid/Grid.tsx

@@ -1,4 +1,5 @@
 import { FC, MouseEvent, useRef, useEffect, useState } from 'react';
 import { FC, MouseEvent, useRef, useEffect, useState } from 'react';
+import { useTranslation } from 'react-i18next';
 import Typography from '@mui/material/Typography';
 import Typography from '@mui/material/Typography';
 import { Theme } from '@mui/material/styles/createTheme';
 import { Theme } from '@mui/material/styles/createTheme';
 import Grid from '@mui/material/Grid';
 import Grid from '@mui/material/Grid';
@@ -7,9 +8,8 @@ import TablePagination from '@mui/material/TablePagination';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
 import CustomToolbar from './ToolBar';
 import CustomToolbar from './ToolBar';
 import Table from './Table';
 import Table from './Table';
-import { AttuGridType } from './Types';
-import { useTranslation } from 'react-i18next';
 import TablePaginationActions from './TablePaginationActions';
 import TablePaginationActions from './TablePaginationActions';
+import type { AttuGridType } from './Types';
 
 
 const userStyle = makeStyles((theme: Theme) => ({
 const userStyle = makeStyles((theme: Theme) => ({
   loading: {
   loading: {

+ 1 - 1
client/src/components/grid/Table.tsx

@@ -6,7 +6,7 @@ import TableContainer from '@mui/material/TableContainer';
 import TableRow from '@mui/material/TableRow';
 import TableRow from '@mui/material/TableRow';
 import Checkbox from '@mui/material/Checkbox';
 import Checkbox from '@mui/material/Checkbox';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
-import { TableType } from './Types';
+import type { TableType } from './Types';
 import { Box, Button, Typography, Theme } from '@mui/material';
 import { Box, Button, Typography, Theme } from '@mui/material';
 import EnhancedTableHead from './TableHead';
 import EnhancedTableHead from './TableHead';
 import EditableTableHead from './TableEditableHead';
 import EditableTableHead from './TableEditableHead';

+ 1 - 1
client/src/components/grid/TableEditableHead.tsx

@@ -1,7 +1,7 @@
 import { FC } from 'react';
 import { FC } from 'react';
-import { TableEditableHeadType } from './Types';
 import { TableHead, TableRow, TableCell, Theme } from '@mui/material';
 import { TableHead, TableRow, TableCell, Theme } from '@mui/material';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { TableEditableHeadType } from './Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   tableCell: {
   tableCell: {

+ 1 - 1
client/src/components/grid/TableHead.tsx

@@ -1,6 +1,5 @@
 import { FC } from 'react';
 import { FC } from 'react';
 import React from 'react';
 import React from 'react';
-import { TableHeadType } from './Types';
 import {
 import {
   TableHead,
   TableHead,
   TableRow,
   TableRow,
@@ -11,6 +10,7 @@ import {
   Theme,
   Theme,
 } from '@mui/material';
 } from '@mui/material';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { TableHeadType } from './Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   visuallyHidden: {
   visuallyHidden: {

+ 1 - 1
client/src/components/grid/TablePaginationActions.tsx

@@ -3,8 +3,8 @@ import CustomButton from '../customButton/CustomButton';
 import icons from '../icons/Icons';
 import icons from '../icons/Icons';
 import React from 'react';
 import React from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { TablePaginationActionsProps } from './Types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { TablePaginationActionsProps } from './Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   root: {
   root: {

+ 1 - 1
client/src/components/grid/TableSwitch.tsx

@@ -1,8 +1,8 @@
 import { Theme } from '@mui/material';
 import { Theme } from '@mui/material';
 import { FC, useState } from 'react';
 import { FC, useState } from 'react';
 import Icons from '../icons/Icons';
 import Icons from '../icons/Icons';
-import { TableSwitchType } from './Types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { TableSwitchType } from './Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   root: {
   root: {

+ 1 - 1
client/src/components/grid/ToolBar.tsx

@@ -2,12 +2,12 @@ import { FC, useMemo } from 'react';
 import { Grid, Typography, Theme, IconButton } from '@mui/material';
 import { Grid, Typography, Theme, IconButton } from '@mui/material';
 import CustomButton from '../customButton/CustomButton';
 import CustomButton from '../customButton/CustomButton';
 import Icons from '../icons/Icons';
 import Icons from '../icons/Icons';
-import { ToolBarConfig, ToolBarType } from './Types';
 import SearchInput from '../customInput/SearchInput';
 import SearchInput from '../customInput/SearchInput';
 import TableSwitch from './TableSwitch';
 import TableSwitch from './TableSwitch';
 import { throwErrorForDev } from '../../utils/Common';
 import { throwErrorForDev } from '../../utils/Common';
 import CustomIconButton from '../customButton/CustomIconButton';
 import CustomIconButton from '../customButton/CustomIconButton';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { ToolBarConfig, ToolBarType } from './Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   countLabel: {
   countLabel: {

+ 1 - 1
client/src/components/icons/Icons.tsx

@@ -1,5 +1,4 @@
 import React from 'react';
 import React from 'react';
-import { IconsType } from './Types';
 import { SvgIcon } from '@mui/material';
 import { SvgIcon } from '@mui/material';
 import AppsIcon from '@mui/icons-material/Apps';
 import AppsIcon from '@mui/icons-material/Apps';
 import CancelIcon from '@mui/icons-material/Cancel';
 import CancelIcon from '@mui/icons-material/Cancel';
@@ -7,6 +6,7 @@ import ConsoleIcon from '@/assets/icons/console.svg?react';
 import KeyIcon from '@/assets/icons/key.svg?react';
 import KeyIcon from '@/assets/icons/key.svg?react';
 import SearchEmptyIcon from '@/assets/icons/search.svg?react';
 import SearchEmptyIcon from '@/assets/icons/search.svg?react';
 import Compact from '@/assets/icons/compact.svg?react';
 import Compact from '@/assets/icons/compact.svg?react';
+import type { IconsType } from './Types';
 
 
 const icons: { [x in IconsType]: (props?: any) => React.ReactElement } = {
 const icons: { [x in IconsType]: (props?: any) => React.ReactElement } = {
   search: (props = {}) => (
   search: (props = {}) => (

+ 1 - 1
client/src/components/menu/NavMenu.tsx

@@ -5,10 +5,10 @@ import List from '@mui/material/List';
 import ListItem from '@mui/material/ListItem';
 import ListItem from '@mui/material/ListItem';
 import Tooltip from '@mui/material/Tooltip';
 import Tooltip from '@mui/material/Tooltip';
 import ListItemIcon from '@mui/material/ListItemIcon';
 import ListItemIcon from '@mui/material/ListItemIcon';
-import { NavMenuItem, NavMenuType } from './Types';
 import Typography from '@mui/material/Typography';
 import Typography from '@mui/material/Typography';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
 import icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
+import type { NavMenuItem, NavMenuType } from './Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   root: {
   root: {

+ 1 - 1
client/src/components/menu/SimpleMenu.tsx

@@ -3,10 +3,10 @@ import React from 'react';
 import Menu from '@mui/material/Menu';
 import Menu from '@mui/material/Menu';
 import MenuItem from '@mui/material/MenuItem';
 import MenuItem from '@mui/material/MenuItem';
 import { generateId } from '../../utils/Common';
 import { generateId } from '../../utils/Common';
-import { SimpleMenuType } from './Types';
 import CustomButton from '../customButton/CustomButton';
 import CustomButton from '../customButton/CustomButton';
 import { Theme } from '@mui/material';
 import { Theme } from '@mui/material';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { SimpleMenuType } from './Types';
 
 
 const getStyles = makeStyles((theme: Theme) => ({
 const getStyles = makeStyles((theme: Theme) => ({
   menuPaper: {
   menuPaper: {

+ 1 - 2
client/src/components/status/Types.ts

@@ -1,6 +1,5 @@
 import { LOADING_STATE } from '@/consts';
 import { LOADING_STATE } from '@/consts';
-import { CollectionObject } from '@server/types';
-import React from 'react';
+import type { CollectionObject } from '@server/types';
 
 
 export type StatusActionType = {
 export type StatusActionType = {
   status: LOADING_STATE;
   status: LOADING_STATE;

+ 1 - 1
client/src/components/uploader/Uploader.tsx

@@ -2,9 +2,9 @@ import { Theme } from '@mui/material';
 import { FC, useContext, useRef } from 'react';
 import { FC, useContext, useRef } from 'react';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
 import CustomButton from '../customButton/CustomButton';
 import CustomButton from '../customButton/CustomButton';
-import { UploaderProps } from './Types';
 import { FILE_MIME_TYPE } from '@/consts';
 import { FILE_MIME_TYPE } from '@/consts';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { UploaderProps } from './Types';
 
 
 const getStyles = makeStyles((theme: Theme) => ({
 const getStyles = makeStyles((theme: Theme) => ({
   btn: {},
   btn: {},

+ 12 - 0
client/src/consts/Milvus.ts

@@ -476,3 +476,15 @@ export enum FunctionType {
   Unknown = 0,
   Unknown = 0,
   BM25 = 1,
   BM25 = 1,
 }
 }
+
+export enum IndexState {
+  IndexStateNone = 'IndexStateNone',
+  Unissued = 'Unissued',
+  InProgress = 'InProgress',
+  Finished = 'Finished',
+  Failed = 'Failed',
+
+  // only used by UI
+  Default = '',
+  Delete = 'Delete',
+}

+ 5 - 0
client/src/consts/Util.ts

@@ -76,3 +76,8 @@ export enum FILE_MIME_TYPE {
   CSV = 'text/csv',
   CSV = 'text/csv',
   JSON = 'application/json',
   JSON = 'application/json',
 }
 }
+
+export enum ManageRequestMethods {
+  DELETE = 'delete',
+  CREATE = 'create',
+}

+ 1 - 1
client/src/context/Auth.tsx

@@ -1,13 +1,13 @@
 import { createContext, useEffect, useState } from 'react';
 import { createContext, useEffect, useState } from 'react';
 import { AuthContextType } from './Types';
 import { AuthContextType } from './Types';
 import { MilvusService } from '@/http';
 import { MilvusService } from '@/http';
-import { AuthReq } from '@server/types';
 import {
 import {
   MILVUS_CLIENT_ID,
   MILVUS_CLIENT_ID,
   MILVUS_URL,
   MILVUS_URL,
   MILVUS_DATABASE,
   MILVUS_DATABASE,
   ATTU_AUTH_REQ,
   ATTU_AUTH_REQ,
 } from '@/consts';
 } from '@/consts';
+import type { AuthReq } from '@server/types';
 
 
 export const authContext = createContext<AuthContextType>({
 export const authContext = createContext<AuthContextType>({
   clientId: '',
   clientId: '',

+ 6 - 6
client/src/context/Data.tsx

@@ -15,19 +15,19 @@ import {
   isElectron,
   isElectron,
   url,
   url,
 } from '@/http';
 } from '@/http';
-import {
+import { WS_EVENTS, WS_EVENTS_TYPE, LOADING_STATE } from '@server/utils/Const';
+import { DEFAULT_TREE_WIDTH, ATTU_UI_TREE_WIDTH } from '@/consts';
+import { checkIndexing, checkLoading } from '@server/utils/Shared';
+import type {
   IndexCreateParam,
   IndexCreateParam,
   IndexManageParam,
   IndexManageParam,
 } from '@/pages/databases/collections/schema/Types';
 } from '@/pages/databases/collections/schema/Types';
-import { DataContextType } from './Types';
-import {
+import type { DataContextType } from './Types';
+import type {
   CollectionObject,
   CollectionObject,
   CollectionFullObject,
   CollectionFullObject,
   DatabaseObject,
   DatabaseObject,
 } from '@server/types';
 } from '@server/types';
-import { WS_EVENTS, WS_EVENTS_TYPE, LOADING_STATE } from '@server/utils/Const';
-import { DEFAULT_TREE_WIDTH, ATTU_UI_TREE_WIDTH } from '@/consts';
-import { checkIndexing, checkLoading } from '@server/utils/Shared';
 
 
 export const dataContext = createContext<DataContextType>({
 export const dataContext = createContext<DataContextType>({
   loading: true,
   loading: true,

+ 1 - 1
client/src/context/Navigation.tsx

@@ -1,7 +1,7 @@
 import { createContext, useState } from 'react';
 import { createContext, useState } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { NavInfo } from '@/router/Types';
 import { NavContextType } from './Types';
 import { NavContextType } from './Types';
+import type { NavInfo } from '@/router/Types';
 
 
 export const navContext = createContext<NavContextType>({
 export const navContext = createContext<NavContextType>({
   navInfo: {
   navInfo: {

+ 0 - 113
client/src/context/Prometheus.tsx

@@ -1,113 +0,0 @@
-import React, { createContext, useContext, useEffect, useState } from 'react';
-import { useTranslation } from 'react-i18next';
-import { authContext, rootContext } from '@/context';
-import { PrometheusContextType } from './Types';
-import {
-  LAST_TIME_WITH_PROMETHEUS,
-  LAST_TIME_PROMETHEUS_ADDRESS,
-  LAST_TIME_PROMETHEUS_INSTANCE,
-  LAST_TIME_PROMETHEUS_NAMESPACE,
-  PROMETHEUS_ADDRESS,
-  PROMETHEUS_INSTANCE_NAME,
-  PROMETHEUS_NAMESPACE,
-  WITH_PROMETHEUS,
-} from '@/consts';
-import { formatPrometheusAddress } from '@/utils';
-import { PrometheusService } from '@/http';
-
-export const prometheusContext = createContext<PrometheusContextType>({
-  withPrometheus: false,
-  setWithPrometheus: () => {},
-  isPrometheusReady: false,
-  prometheusAddress: '',
-  prometheusInstance: '',
-  prometheusNamespace: '',
-  setPrometheusAddress: () => {},
-  setPrometheusInstance: () => {},
-  setPrometheusNamespace: () => {},
-});
-
-const { Provider } = prometheusContext;
-export const PrometheusProvider = (props: { children: React.ReactNode }) => {
-  const { isAuth } = useContext(authContext);
-
-  const [withPrometheus, setWithPrometheus] = useState(
-    !!(
-      window.localStorage.getItem(LAST_TIME_WITH_PROMETHEUS) || WITH_PROMETHEUS
-    )
-  );
-  const [prometheusAddress, setPrometheusAddress] = useState(
-    window.localStorage.getItem(LAST_TIME_PROMETHEUS_ADDRESS) ||
-      PROMETHEUS_ADDRESS
-  );
-  const [prometheusInstance, setPrometheusInstance] = useState(
-    window.localStorage.getItem(LAST_TIME_PROMETHEUS_INSTANCE) ||
-      PROMETHEUS_INSTANCE_NAME
-  );
-  const [prometheusNamespace, setPrometheusNamespace] = useState(
-    window.localStorage.getItem(LAST_TIME_PROMETHEUS_NAMESPACE) ||
-      PROMETHEUS_NAMESPACE
-  );
-
-  const [isPrometheusReady, setIsPrometheusReady] = useState(false);
-
-  const { openSnackBar } = useContext(rootContext);
-  const { t: prometheusTrans } = useTranslation('prometheus');
-
-  useEffect(() => {
-    if (!isAuth) return;
-    if (withPrometheus) {
-      const prometheusAddressformat =
-        formatPrometheusAddress(prometheusAddress);
-      PrometheusService.setPrometheus({
-        prometheusAddress: prometheusAddressformat,
-        prometheusInstance,
-        prometheusNamespace,
-      })
-        .then(({ isReady }: { isReady: boolean }) => {
-          if (isReady) {
-            window.localStorage.setItem(LAST_TIME_WITH_PROMETHEUS, 'true');
-            window.localStorage.setItem(
-              LAST_TIME_PROMETHEUS_ADDRESS,
-              prometheusAddress
-            );
-            window.localStorage.setItem(
-              LAST_TIME_PROMETHEUS_INSTANCE,
-              prometheusInstance
-            );
-            window.localStorage.setItem(
-              LAST_TIME_PROMETHEUS_NAMESPACE,
-              prometheusNamespace
-            );
-          } else {
-            openSnackBar(prometheusTrans('invalid'), 'error');
-          }
-          setIsPrometheusReady(isReady);
-        })
-        .catch(err => {
-          openSnackBar(prometheusTrans('invalid'), 'error');
-          setIsPrometheusReady(false);
-        });
-    } else {
-      setIsPrometheusReady(false);
-    }
-  }, [isAuth, setIsPrometheusReady]);
-
-  return (
-    <Provider
-      value={{
-        withPrometheus,
-        setWithPrometheus,
-        isPrometheusReady,
-        prometheusAddress,
-        prometheusInstance,
-        prometheusNamespace,
-        setPrometheusAddress,
-        setPrometheusInstance,
-        setPrometheusNamespace,
-      }}
-    >
-      {props.children}
-    </Provider>
-  );
-};

+ 5 - 5
client/src/context/Root.tsx

@@ -1,17 +1,17 @@
 import { useState, useCallback, useEffect, useContext } from 'react';
 import { useState, useCallback, useEffect, useContext } from 'react';
 import React from 'react';
 import React from 'react';
 import { authContext } from '@/context';
 import { authContext } from '@/context';
-import {
+import CustomSnackBar from '@/components/customSnackBar/CustomSnackBar';
+import CustomDialog from '@/components/customDialog/CustomDialog';
+import CustomDrawer from '@/components/customDrawer/CustomDrawer';
+import { MilvusService } from '@/http';
+import type {
   RootContextType,
   RootContextType,
   DialogType,
   DialogType,
   SnackBarType,
   SnackBarType,
   OpenSnackBarType,
   OpenSnackBarType,
   DrawerType,
   DrawerType,
 } from './Types';
 } from './Types';
-import CustomSnackBar from '@/components/customSnackBar/CustomSnackBar';
-import CustomDialog from '@/components/customDialog/CustomDialog';
-import CustomDrawer from '@/components/customDrawer/CustomDrawer';
-import { MilvusService } from '@/http';
 
 
 const DefaultDialogConfigs: DialogType = {
 const DefaultDialogConfigs: DialogType = {
   open: false,
   open: false,

+ 1 - 1
client/src/context/System.tsx

@@ -3,7 +3,7 @@ import { UserService, MilvusService } from '@/http';
 import { parseJson, getNode, getSystemConfigs } from '@/utils';
 import { parseJson, getNode, getSystemConfigs } from '@/utils';
 import { MILVUS_NODE_TYPE } from '@/consts';
 import { MILVUS_NODE_TYPE } from '@/consts';
 import { authContext } from '@/context';
 import { authContext } from '@/context';
-import { SystemContextType } from './Types';
+import type { SystemContextType } from './Types';
 
 
 export const systemContext = createContext<SystemContextType>({
 export const systemContext = createContext<SystemContextType>({
   data: {},
   data: {},

+ 7 - 7
client/src/context/Types.ts

@@ -1,16 +1,16 @@
 import { Dispatch, ReactElement, SetStateAction } from 'react';
 import { Dispatch, ReactElement, SetStateAction } from 'react';
-import {
+import type { NavInfo } from '@/router/Types';
+import type {
+  IndexCreateParam,
+  IndexManageParam,
+} from '@/pages/databases/collections/schema/Types';
+import type {
   CollectionObject,
   CollectionObject,
   CollectionFullObject,
   CollectionFullObject,
   DatabaseObject,
   DatabaseObject,
   AuthReq,
   AuthReq,
+  AuthObject,
 } from '@server/types';
 } from '@server/types';
-import { NavInfo } from '@/router/Types';
-import {
-  IndexCreateParam,
-  IndexManageParam,
-} from '@/pages/databases/collections/schema/Types';
-import { AuthObject } from '@server/types';
 
 
 export type RootContextType = {
 export type RootContextType = {
   openSnackBar: OpenSnackBarType;
   openSnackBar: OpenSnackBarType;

+ 0 - 1
client/src/context/index.tsx

@@ -1,7 +1,6 @@
 export * from './Auth';
 export * from './Auth';
 export * from './System';
 export * from './System';
 export * from './Navigation';
 export * from './Navigation';
-export * from './Prometheus';
 export * from './Root';
 export * from './Root';
 export * from './Types';
 export * from './Types';
 export * from './Data';
 export * from './Data';

+ 1 - 1
client/src/hooks/Form.ts

@@ -1,6 +1,6 @@
 import { useState } from 'react';
 import { useState } from 'react';
-import { IValidation } from '../components/customInput/Types';
 import { checkEmptyValid, getCheckResult } from '../utils/Validation';
 import { checkEmptyValid, getCheckResult } from '../utils/Validation';
+import type { IValidation } from '../components/customInput/Types';
 
 
 export interface IForm {
 export interface IForm {
   key: string;
   key: string;

+ 2 - 1
client/src/hooks/Navigation.tsx

@@ -1,7 +1,8 @@
 import { useContext, useEffect } from 'react';
 import { useContext, useEffect } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import { navContext } from '@/context';
 import { navContext } from '@/context';
-import { ALL_ROUTER_TYPES, NavInfo } from '@/router/Types';
+import { NavInfo } from '@/router/Types';
+import { ALL_ROUTER_TYPES } from '@/router/consts';
 
 
 export const useNavigationHook = (
 export const useNavigationHook = (
   type: ALL_ROUTER_TYPES,
   type: ALL_ROUTER_TYPES,

+ 1 - 1
client/src/hooks/Pagination.ts

@@ -1,6 +1,6 @@
 import { useMemo, useState } from 'react';
 import { useMemo, useState } from 'react';
 import { stableSort, getComparator } from '../utils/Sort';
 import { stableSort, getComparator } from '../utils/Sort';
-import { ColDefinitionsType, SortType } from '../components/grid/Types';
+import type { ColDefinitionsType, SortType } from '../components/grid/Types';
 
 
 export const usePaginationHook = (list: any[]) => {
 export const usePaginationHook = (list: any[]) => {
   const [currentPage, setCurrentPage] = useState(0);
   const [currentPage, setCurrentPage] = useState(0);

+ 1 - 1
client/src/hooks/Query.ts

@@ -1,7 +1,7 @@
 import { useState, useRef, useEffect } from 'react';
 import { useState, useRef, useEffect } from 'react';
 import { DataTypeStringEnum, MIN_INT64 } from '@/consts';
 import { DataTypeStringEnum, MIN_INT64 } from '@/consts';
 import { CollectionService } from '@/http';
 import { CollectionService } from '@/http';
-import { CollectionFullObject, FieldObject } from '@server/types';
+import type { CollectionFullObject, FieldObject } from '@server/types';
 
 
 // TODO: refactor this, a little bit messy
 // TODO: refactor this, a little bit messy
 export const useQuery = (params: {
 export const useQuery = (params: {

+ 0 - 33
client/src/hooks/TimeTravel.ts

@@ -1,33 +0,0 @@
-import dayjs from 'dayjs';
-import { formatUtcToMilvus } from '../utils/Format';
-import { useMemo, useState } from 'react';
-import { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';
-import { useTranslation } from 'react-i18next';
-
-export const useTimeTravelHook = () => {
-  const [timeTravel, setTimeTravel] = useState<MaterialUiPickersDate>(null);
-  const { t: searchTrans } = useTranslation('search');
-
-  const timeTravelInfo = useMemo(() => {
-    const timestamp = dayjs(timeTravel).valueOf();
-    return {
-      label: timeTravel
-        ? ` ${searchTrans('timeTravelPrefix')} ${dayjs(timeTravel).format(
-            'YYYY-MM-DD HH:mm:ss'
-          )}`
-        : searchTrans('timeTravel'),
-      timestamp: timeTravel ? formatUtcToMilvus(timestamp) : undefined,
-    };
-  }, [searchTrans, timeTravel]);
-
-  const handleDateTimeChange = (value: MaterialUiPickersDate) => {
-    setTimeTravel(value);
-  };
-
-  return {
-    timeTravel,
-    setTimeTravel,
-    handleDateTimeChange,
-    timeTravelInfo,
-  };
-};

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

@@ -5,4 +5,3 @@ export * from './Pagination';
 export * from './Result';
 export * from './Result';
 export * from './SystemView';
 export * from './SystemView';
 export * from './Query';
 export * from './Query';
-export * from './TimeTravel';

+ 2 - 2
client/src/http/Collection.service.ts

@@ -11,8 +11,8 @@ import {
   DescribeIndexRes,
   DescribeIndexRes,
   IndexObject,
   IndexObject,
 } from '@server/types';
 } from '@server/types';
-import { ManageRequestMethods } from '../types/Common';
-import {
+import { ManageRequestMethods } from '@/consts';
+import type {
   IndexCreateParam,
   IndexCreateParam,
   IndexManageParam,
   IndexManageParam,
 } from '@/pages/databases/collections/schema/Types';
 } from '@/pages/databases/collections/schema/Types';

+ 3 - 3
client/src/http/Data.service.ts

@@ -1,7 +1,7 @@
-import { LoadSampleParam } from '@/pages/dialogs/Types';
-import { InsertDataParam, DeleteEntitiesReq } from '@/pages/databases/collections/Types';
-import { VectorSearchParam } from '@/types/SearchTypes';
 import BaseModel from './BaseModel';
 import BaseModel from './BaseModel';
+import type { LoadSampleParam } from '@/pages/dialogs/Types';
+import type { InsertDataParam, DeleteEntitiesReq } from '@/pages/databases/collections/Types';
+import type { VectorSearchParam } from '@/types/SearchTypes';
 
 
 export class DataService extends BaseModel {
 export class DataService extends BaseModel {
   static importSample(collectionName: string, param: LoadSampleParam) {
   static importSample(collectionName: string, param: LoadSampleParam) {

+ 1 - 1
client/src/http/Database.service.ts

@@ -1,5 +1,5 @@
 import BaseModel from './BaseModel';
 import BaseModel from './BaseModel';
-import { DatabaseObject } from '@server/types';
+import type { DatabaseObject } from '@server/types';
 
 
 // request types
 // request types
 export interface CreateDatabaseParams {
 export interface CreateDatabaseParams {

+ 1 - 1
client/src/http/Milvus.service.ts

@@ -1,6 +1,6 @@
 import BaseModel from './BaseModel';
 import BaseModel from './BaseModel';
 import { CronJobObject } from '@server/types';
 import { CronJobObject } from '@server/types';
-import { AuthReq, AuthObject } from '@server/types';
+import type { AuthReq, AuthObject } from '@server/types';
 
 
 export class MilvusService extends BaseModel {
 export class MilvusService extends BaseModel {
   static connect(data: AuthReq) {
   static connect(data: AuthReq) {

+ 5 - 2
client/src/http/Partition.service.ts

@@ -1,6 +1,9 @@
-import { PartitionManageParam, PartitionParam } from '@/pages/databases/collections/partitions/Types';
 import BaseModel from './BaseModel';
 import BaseModel from './BaseModel';
-import { PartitionData } from '@server/types';
+import type { PartitionData } from '@server/types';
+import type {
+  PartitionManageParam,
+  PartitionParam,
+} from '@/pages/databases/collections/partitions/Types';
 
 
 export class PartitionService extends BaseModel {
 export class PartitionService extends BaseModel {
   static getPartitions(collectionName: string) {
   static getPartitions(collectionName: string) {

+ 0 - 37
client/src/http/Prometheus.service.ts

@@ -1,37 +0,0 @@
-import BaseModel from './BaseModel';
-
-export class PrometheusService extends BaseModel {
-  static SET_PROMETHEUS_URL = `/prometheus/setPrometheus`;
-  static GET_MILVUS_HEALTHY_DATA_URL = `/prometheus/getMilvusHealthyData`;
-
-  static setPrometheus({
-    prometheusAddress,
-    prometheusInstance,
-    prometheusNamespace,
-  }: {
-    prometheusAddress: string;
-    prometheusInstance: string;
-    prometheusNamespace: string;
-  }) {
-    return super.search({
-      path: PrometheusService.SET_PROMETHEUS_URL,
-      params: { prometheusAddress, prometheusInstance, prometheusNamespace },
-      timeout: 1000,
-    });
-  }
-
-  static getHealthyData({
-    start,
-    end,
-    step,
-  }: {
-    start: number;
-    end: number;
-    step: number;
-  }) {
-    return super.search({
-      path: PrometheusService.GET_MILVUS_HEALTHY_DATA_URL,
-      params: { start, end, step },
-    });
-  }
-}

+ 4 - 1
client/src/http/Segment.service.ts

@@ -1,5 +1,8 @@
 import BaseModel from './BaseModel';
 import BaseModel from './BaseModel';
-import { QuerySegmentObjects, PersistentSegmentObjects } from '@server/types';
+import type {
+  QuerySegmentObjects,
+  PersistentSegmentObjects,
+} from '@server/types';
 
 
 export class SegmentService extends BaseModel {
 export class SegmentService extends BaseModel {
   static getQSegments(collectionName: string) {
   static getQSegments(collectionName: string) {

+ 3 - 3
client/src/http/User.service.ts

@@ -1,4 +1,6 @@
-import {
+import BaseModel from './BaseModel';
+import type { Users, UsersWithRoles } from '@server/types';
+import type {
   CreateUserParams,
   CreateUserParams,
   DeleteUserParams,
   DeleteUserParams,
   UpdateUserParams,
   UpdateUserParams,
@@ -7,8 +9,6 @@ import {
   AssignRoleParams,
   AssignRoleParams,
   UnassignRoleParams,
   UnassignRoleParams,
 } from '../pages/user/Types';
 } from '../pages/user/Types';
-import BaseModel from './BaseModel';
-import { Users, UsersWithRoles } from '@server/types';
 
 
 export class UserService extends BaseModel {
 export class UserService extends BaseModel {
   // get user data
   // get user data

+ 0 - 1
client/src/http/index.ts

@@ -8,6 +8,5 @@ export * from './Partition.service';
 export * from './Data.service';
 export * from './Data.service';
 export * from './Milvus.service';
 export * from './Milvus.service';
 export * from './Database.service';
 export * from './Database.service';
-export * from './Prometheus.service';
 export * from './Segment.service';
 export * from './Segment.service';
 export * from './User.service';
 export * from './User.service';

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

@@ -13,7 +13,7 @@ import Icons from '@/components/icons/Icons';
 import CustomToolTip from '@/components/customToolTip/CustomToolTip';
 import CustomToolTip from '@/components/customToolTip/CustomToolTip';
 import CustomIconButton from '@/components/customButton/CustomIconButton';
 import CustomIconButton from '@/components/customButton/CustomIconButton';
 import { useStyles } from './style';
 import { useStyles } from './style';
-import { AuthReq } from '@server/types';
+import type { AuthReq } from '@server/types';
 
 
 type Connection = AuthReq & {
 type Connection = AuthReq & {
   time: number;
   time: number;

+ 1 - 1
client/src/pages/databases/Databases.tsx

@@ -3,7 +3,7 @@ import { useParams } from 'react-router-dom';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import { Theme } from '@mui/material';
 import { Theme } from '@mui/material';
 import { useNavigationHook } from '@/hooks';
 import { useNavigationHook } from '@/hooks';
-import { ALL_ROUTER_TYPES } from '@/router/Types';
+import { ALL_ROUTER_TYPES } from '@/router/consts';
 import RouteTabList from '@/components/customTabList/RouteTabList';
 import RouteTabList from '@/components/customTabList/RouteTabList';
 import DatabaseTree from '@/pages/databases/tree';
 import DatabaseTree from '@/pages/databases/tree';
 import { ITab } from '@/components/customTabList/Types';
 import { ITab } from '@/components/customTabList/Types';

+ 1 - 1
client/src/pages/databases/collections/Aliases.tsx

@@ -5,8 +5,8 @@ import { rootContext, dataContext } from '@/context';
 import icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
 import CreateAliasDialog from '@/pages/dialogs/CreateAliasDialog';
 import CreateAliasDialog from '@/pages/dialogs/CreateAliasDialog';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
-import { CollectionObject } from '@server/types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { CollectionObject } from '@server/types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

+ 2 - 2
client/src/pages/databases/collections/CollectionColHeader.tsx

@@ -1,10 +1,10 @@
-import { CollectionFullObject } from '@server/types';
 import CustomToolTip from '@/components/customToolTip/CustomToolTip';
 import CustomToolTip from '@/components/customToolTip/CustomToolTip';
 import { formatFieldType } from '@/utils';
 import { formatFieldType } from '@/utils';
 import Icons from '@/components/icons/Icons';
 import Icons from '@/components/icons/Icons';
 import { Theme } from '@mui/material';
 import { Theme } from '@mui/material';
-import { ColDefinitionsType } from '@/components/grid/Types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { CollectionFullObject } from '@server/types';
+import type { ColDefinitionsType } from '@/components/grid/Types';
 
 
 export const style = makeStyles((theme: Theme) => ({
 export const style = makeStyles((theme: Theme) => ({
   icon: {
   icon: {

+ 5 - 2
client/src/pages/databases/collections/Collections.tsx

@@ -8,7 +8,6 @@ import { CollectionService } from '@/http';
 import { usePaginationHook } from '@/hooks';
 import { usePaginationHook } from '@/hooks';
 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 { ColDefinitionsType, ToolBarConfig } from '@/components/grid/Types';
 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 StatusAction from '@/pages/databases/collections/StatusAction';
 import StatusAction from '@/pages/databases/collections/StatusAction';
@@ -25,8 +24,12 @@ import { getLabelDisplayedRows } from '@/pages/search/Utils';
 import { LOADING_STATE } from '@/consts';
 import { LOADING_STATE } from '@/consts';
 import { formatNumber } from '@/utils';
 import { formatNumber } from '@/utils';
 import Aliases from './Aliases';
 import Aliases from './Aliases';
-import { CollectionObject } from '@server/types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type {
+  ColDefinitionsType,
+  ToolBarConfig,
+} from '@/components/grid/Types';
+import type { CollectionObject } from '@server/types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   root: {
   root: {

+ 1 - 1
client/src/pages/databases/collections/data/CollectionData.tsx

@@ -24,13 +24,13 @@ import {
 import CustomSelector from '@/components/customSelector/CustomSelector';
 import CustomSelector from '@/components/customSelector/CustomSelector';
 import EmptyDataDialog from '@/pages/dialogs/EmptyDataDialog';
 import EmptyDataDialog from '@/pages/dialogs/EmptyDataDialog';
 import ImportSampleDialog from '@/pages/dialogs/ImportSampleDialog';
 import ImportSampleDialog from '@/pages/dialogs/ImportSampleDialog';
-import { CollectionObject, CollectionFullObject } from '@server/types';
 import StatusIcon, { LoadingType } from '@/components/status/StatusIcon';
 import StatusIcon, { LoadingType } from '@/components/status/StatusIcon';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomMultiSelector from '@/components/customSelector/CustomMultiSelector';
 import CustomMultiSelector from '@/components/customSelector/CustomMultiSelector';
 import CollectionColHeader from '../CollectionColHeader';
 import CollectionColHeader from '../CollectionColHeader';
 import DataView from '@/components/DataView/DataView';
 import DataView from '@/components/DataView/DataView';
 import DataListView from '@/components/DataListView/DataListView';
 import DataListView from '@/components/DataListView/DataListView';
+import type { CollectionObject, CollectionFullObject } from '@server/types';
 
 
 export interface CollectionDataProps {
 export interface CollectionDataProps {
   collectionName: string;
   collectionName: string;

+ 1 - 1
client/src/pages/databases/collections/partitions/Partitions.tsx

@@ -13,10 +13,10 @@ import { CollectionService, PartitionService } from '@/http';
 import InsertContainer from '@/pages/dialogs/insert/Dialog';
 import InsertContainer from '@/pages/dialogs/insert/Dialog';
 import CreatePartitionDialog from '@/pages/dialogs/CreatePartitionDialog';
 import CreatePartitionDialog from '@/pages/dialogs/CreatePartitionDialog';
 import DropPartitionDialog from '@/pages/dialogs/DropPartitionDialog';
 import DropPartitionDialog from '@/pages/dialogs/DropPartitionDialog';
-import { PartitionData } from '@server/types';
 import { formatNumber } from '@/utils';
 import { formatNumber } from '@/utils';
 import { getLabelDisplayedRows } from '@/pages/search/Utils';
 import { getLabelDisplayedRows } from '@/pages/search/Utils';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { PartitionData } from '@server/types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

+ 1 - 3
client/src/pages/databases/collections/partitions/Types.ts

@@ -1,6 +1,4 @@
-import { ReactElement } from 'react';
-import { LOADING_STATE } from '@/consts';
-import { ManageRequestMethods } from '../../../../types/Common';
+import { ManageRequestMethods } from '@/consts';
 
 
 // delete and create
 // delete and create
 export interface PartitionManageParam {
 export interface PartitionManageParam {

+ 1 - 1
client/src/pages/databases/collections/properties/Properties.tsx

@@ -9,11 +9,11 @@ import EditPropertyDialog from '@/pages/dialogs/EditPropertyDialog';
 import ResetPropertyDialog from '@/pages/dialogs/ResetPropertyDialog';
 import ResetPropertyDialog from '@/pages/dialogs/ResetPropertyDialog';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
 import { getLabelDisplayedRows } from '@/pages/search/Utils';
 import { getLabelDisplayedRows } from '@/pages/search/Utils';
-import { CollectionFullObject, KeyValuePair } from '@server/types';
 import { formatNumber } from '@/utils';
 import { formatNumber } from '@/utils';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
 import { DatabaseService } from '@/http';
 import { DatabaseService } from '@/http';
 import { databaseDefaults, collectionDefaults, Property } from '@/consts';
 import { databaseDefaults, collectionDefaults, Property } from '@/consts';
+import type { CollectionFullObject, KeyValuePair } from '@server/types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

+ 1 - 3
client/src/pages/databases/collections/properties/Types.ts

@@ -1,6 +1,4 @@
-import { ReactElement } from 'react';
-import { LOADING_STATE } from '@/consts';
-import { ManageRequestMethods } from '../../../../types/Common';
+import { ManageRequestMethods } from '@/consts';
 
 
 // delete and create
 // delete and create
 export interface PartitionManageParam {
 export interface PartitionManageParam {

+ 2 - 2
client/src/pages/databases/collections/schema/CreateForm.tsx

@@ -5,9 +5,9 @@ import { ITextfieldConfig } from '@/components/customInput/Types';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomSelector from '@/components/customSelector/CustomSelector';
 import CustomSelector from '@/components/customSelector/CustomSelector';
 import CustomGroupedSelect from '@/components/customSelector/CustomGroupedSelect';
 import CustomGroupedSelect from '@/components/customSelector/CustomGroupedSelect';
-import { Option, GroupOption } from '@/components/customSelector/Types';
-import { FormHelperType } from '../../../../types/Common';
+import type { FormHelperType } from '../../../../types/Common';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { Option, GroupOption } from '@/components/customSelector/Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

+ 2 - 3
client/src/pages/databases/collections/schema/CreateIndexDialog.tsx

@@ -9,7 +9,6 @@ import {
   INDEX_TYPES_ENUM,
   INDEX_TYPES_ENUM,
   DataTypeEnum,
   DataTypeEnum,
   DataTypeStringEnum,
   DataTypeStringEnum,
-  VectorTypesString,
 } from '@/consts';
 } from '@/consts';
 import { useFormValidation } from '@/hooks';
 import { useFormValidation } from '@/hooks';
 import {
 import {
@@ -19,8 +18,8 @@ import {
   isVectorType,
   isVectorType,
 } from '@/utils';
 } from '@/utils';
 import CreateForm from './CreateForm';
 import CreateForm from './CreateForm';
-import { IndexType, IndexExtraParam } from './Types';
-import { FieldObject } from '@server/types';
+import type { IndexType, IndexExtraParam } from './Types';
+import type { FieldObject } from '@server/types';
 
 
 const CreateIndex = (props: {
 const CreateIndex = (props: {
   collectionName: string;
   collectionName: string;

+ 2 - 2
client/src/pages/databases/collections/schema/IndexTypeElement.tsx

@@ -7,13 +7,13 @@ import { rootContext, dataContext } from '@/context';
 import Icons from '@/components/icons/Icons';
 import Icons from '@/components/icons/Icons';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import StatusIcon, { LoadingType } from '@/components/status/StatusIcon';
 import StatusIcon, { LoadingType } from '@/components/status/StatusIcon';
-import { IndexState } from '@/types/Milvus';
+import { IndexState } from '@/consts/Milvus';
 import { NONE_INDEXABLE_DATA_TYPES, DataTypeStringEnum } from '@/consts';
 import { NONE_INDEXABLE_DATA_TYPES, DataTypeStringEnum } from '@/consts';
 import CreateIndexDialog from './CreateIndexDialog';
 import CreateIndexDialog from './CreateIndexDialog';
-import { FieldObject } from '@server/types';
 import CustomButton from '@/components/customButton/CustomButton';
 import CustomButton from '@/components/customButton/CustomButton';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
 import { isVectorType } from '@/utils';
 import { isVectorType } from '@/utils';
+import type { FieldObject } from '@server/types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

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

@@ -11,7 +11,6 @@ import IndexTypeElement from './IndexTypeElement';
 import { getLabelDisplayedRows } from '@/pages/search/Utils';
 import { getLabelDisplayedRows } from '@/pages/search/Utils';
 import StatusAction from '@/pages/databases/collections/StatusAction';
 import StatusAction from '@/pages/databases/collections/StatusAction';
 import CustomToolTip from '@/components/customToolTip/CustomToolTip';
 import CustomToolTip from '@/components/customToolTip/CustomToolTip';
-import { FieldObject } from '@server/types';
 import { useStyles } from './Styles';
 import { useStyles } from './Styles';
 import CustomIconButton from '@/components/customButton/CustomIconButton';
 import CustomIconButton from '@/components/customButton/CustomIconButton';
 import LoadCollectionDialog from '@/pages/dialogs/LoadCollectionDialog';
 import LoadCollectionDialog from '@/pages/dialogs/LoadCollectionDialog';
@@ -19,6 +18,7 @@ import RenameCollectionDialog from '@/pages/dialogs/RenameCollectionDialog';
 import CopyButton from '@/components/advancedSearch/CopyButton';
 import CopyButton from '@/components/advancedSearch/CopyButton';
 import RefreshButton from '@/components/customButton/RefreshButton';
 import RefreshButton from '@/components/customButton/RefreshButton';
 import { CollectionService } from '@/http';
 import { CollectionService } from '@/http';
+import type { FieldObject } from '@server/types';
 
 
 const Overview = () => {
 const Overview = () => {
   const { fetchCollection, collections, loading, database } =
   const { fetchCollection, collections, loading, database } =

+ 2 - 1
client/src/pages/databases/collections/search/DataExplorer.tsx

@@ -3,8 +3,9 @@ import * as d3 from 'd3';
 import { useTheme } from '@mui/material';
 import { useTheme } from '@mui/material';
 import { cloneObj } from '@/utils';
 import { cloneObj } from '@/utils';
 import { getDataExplorerStyle } from './Styles';
 import { getDataExplorerStyle } from './Styles';
-import { GraphData, GraphNode, GraphLink } from '../../types';
 import DataPanel from './DataPanel';
 import DataPanel from './DataPanel';
+import type { GraphData, GraphNode, GraphLink } from '../../types';
+
 
 
 interface DataExplorerProps {
 interface DataExplorerProps {
   data: GraphData;
   data: GraphData;

+ 1 - 1
client/src/pages/databases/collections/search/DataPanel.tsx

@@ -2,7 +2,7 @@ import { Typography, useTheme } from '@mui/material';
 import SyntaxHighlighter from 'react-syntax-highlighter';
 import SyntaxHighlighter from 'react-syntax-highlighter';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import { vs2015, github } from 'react-syntax-highlighter/dist/esm/styles/hljs';
 import { vs2015, github } from 'react-syntax-highlighter/dist/esm/styles/hljs';
-import { GraphNode } from '../../types';
+import type { GraphNode } from '../../types';
 
 
 const DataPanel = (props: { node: GraphNode; color: any }) => {
 const DataPanel = (props: { node: GraphNode; color: any }) => {
   // i18n
   // i18n

+ 1 - 1
client/src/pages/databases/collections/search/PartitionsSelector.tsx

@@ -2,7 +2,7 @@ import { useState } from 'react';
 import Autocomplete from '@mui/material/Autocomplete';
 import Autocomplete from '@mui/material/Autocomplete';
 import CircularProgress from '@mui/material/CircularProgress';
 import CircularProgress from '@mui/material/CircularProgress';
 import { PartitionService } from '@/http';
 import { PartitionService } from '@/http';
-import { PartitionData } from '@server/types';
+import type { PartitionData } from '@server/types';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomInput from '@/components/customInput/CustomInput';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 
 

+ 3 - 3
client/src/pages/databases/collections/search/Search.tsx

@@ -34,18 +34,18 @@ import {
 } from '@/utils';
 } from '@/utils';
 import SearchParams from '../../../search/SearchParams';
 import SearchParams from '../../../search/SearchParams';
 import DataExplorer, { formatMilvusData } from './DataExplorer';
 import DataExplorer, { formatMilvusData } from './DataExplorer';
-import { GraphData, GraphNode } from '../../types';
 import {
 import {
   SearchParams as SearchParamsType,
   SearchParams as SearchParamsType,
   SearchSingleParams,
   SearchSingleParams,
   SearchResultView,
   SearchResultView,
 } from '../../types';
 } from '../../types';
 import { DYNAMIC_FIELD } from '@/consts';
 import { DYNAMIC_FIELD } from '@/consts';
-import { ColDefinitionsType } from '@/components/grid/Types';
-import { CollectionObject, CollectionFullObject } from '@server/types';
 import CodeDialog from '@/pages/dialogs/CodeDialog';
 import CodeDialog from '@/pages/dialogs/CodeDialog';
 import CollectionColHeader from '../CollectionColHeader';
 import CollectionColHeader from '../CollectionColHeader';
 import DataView from '@/components/DataView/DataView';
 import DataView from '@/components/DataView/DataView';
+import type { GraphData, GraphNode } from '../../types';
+import type { ColDefinitionsType } from '@/components/grid/Types';
+import type { CollectionObject, CollectionFullObject } from '@server/types';
 
 
 export interface CollectionDataProps {
 export interface CollectionDataProps {
   collectionName: string;
   collectionName: string;

+ 1 - 1
client/src/pages/databases/collections/search/SearchGlobalParams.tsx

@@ -11,7 +11,7 @@ import {
   RERANKER_OPTIONS,
   RERANKER_OPTIONS,
   DataTypeStringEnum,
   DataTypeStringEnum,
 } from '@/consts';
 } from '@/consts';
-import { SearchParams, GlobalParams } from '../../types';
+import type { SearchParams, GlobalParams } from '../../types';
 
 
 export interface SearchGlobalProps {
 export interface SearchGlobalProps {
   searchParams: SearchParams;
   searchParams: SearchParams;

+ 2 - 2
client/src/pages/databases/collections/search/SearchInputBox.tsx

@@ -7,15 +7,15 @@ import { indentUnit } from '@codemirror/language';
 import { minimalSetup } from 'codemirror';
 import { minimalSetup } from 'codemirror';
 import { javascript } from '@codemirror/lang-javascript';
 import { javascript } from '@codemirror/lang-javascript';
 import { linter, Diagnostic } from '@codemirror/lint';
 import { linter, Diagnostic } from '@codemirror/lint';
-import { CollectionFullObject } from '@server/types';
 import { CollectionService } from '@/http';
 import { CollectionService } from '@/http';
 import { DataTypeStringEnum } from '@/consts';
 import { DataTypeStringEnum } from '@/consts';
-import { SearchSingleParams } from '../../types';
 import { getQueryStyles } from './Styles';
 import { getQueryStyles } from './Styles';
 import { useTheme } from '@mui/material';
 import { useTheme } from '@mui/material';
 import { githubLight } from '@ddietr/codemirror-themes/github-light';
 import { githubLight } from '@ddietr/codemirror-themes/github-light';
 import { githubDark } from '@ddietr/codemirror-themes/github-dark';
 import { githubDark } from '@ddietr/codemirror-themes/github-dark';
 import { Validator } from './utils';
 import { Validator } from './utils';
+import type { CollectionFullObject } from '@server/types';
+import type { SearchSingleParams } from '../../types';
 
 
 export type SearchInputBoxProps = {
 export type SearchInputBoxProps = {
   onChange: (anns_field: string, value: string) => void;
   onChange: (anns_field: string, value: string) => void;

+ 1 - 1
client/src/pages/databases/collections/search/utils.ts

@@ -1,6 +1,6 @@
 import { isSparseVector, transformObjStrToJSONStr } from '@/utils';
 import { isSparseVector, transformObjStrToJSONStr } from '@/utils';
-import { FieldObject } from '@server/types';
 import { DataTypeStringEnum } from '@/consts';
 import { DataTypeStringEnum } from '@/consts';
+import type { FieldObject } from '@server/types';
 
 
 const floatVectorValidator = (text: string, field: FieldObject) => {
 const floatVectorValidator = (text: string, field: FieldObject) => {
   try {
   try {

+ 3 - 3
client/src/pages/databases/collections/segments/Segments.tsx

@@ -5,14 +5,14 @@ import { SegmentService } from '@/http';
 import { usePaginationHook } from '@/hooks';
 import { usePaginationHook } from '@/hooks';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
 import AttuGrid from '@/components/grid/Grid';
 import AttuGrid from '@/components/grid/Grid';
-import { ColDefinitionsType } from '@/components/grid/Types';
-import { ToolBarConfig } from '@/components/grid/Types';
 import CustomToolBar from '@/components/grid/ToolBar';
 import CustomToolBar from '@/components/grid/ToolBar';
 import CompactDialog from '@/pages/dialogs/CompactDialog';
 import CompactDialog from '@/pages/dialogs/CompactDialog';
 import FlushDialog from '@/pages/dialogs/FlushDialog';
 import FlushDialog from '@/pages/dialogs/FlushDialog';
 import { getQueryStyles } from '../data/Styles';
 import { getQueryStyles } from '../data/Styles';
-import { Segment } from './Types';
 import { getLabelDisplayedRows } from '../../../search/Utils';
 import { getLabelDisplayedRows } from '../../../search/Utils';
+import type { ColDefinitionsType } from '@/components/grid/Types';
+import type { ToolBarConfig } from '@/components/grid/Types';
+import type { Segment } from './Types';
 
 
 const Segments = () => {
 const Segments = () => {
   const { collectionName = '' } = useParams<{ collectionName: string }>();
   const { collectionName = '' } = useParams<{ collectionName: string }>();

+ 2 - 2
client/src/pages/databases/tree/TreeContextMenu.tsx

@@ -11,9 +11,9 @@ import InsertDialog from '@/pages/dialogs/insert/Dialog';
 import ImportSampleDialog from '@/pages/dialogs/ImportSampleDialog';
 import ImportSampleDialog from '@/pages/dialogs/ImportSampleDialog';
 import EmptyDataDialog from '@/pages/dialogs/EmptyDataDialog';
 import EmptyDataDialog from '@/pages/dialogs/EmptyDataDialog';
 import { MenuItem, Divider } from '@mui/material';
 import { MenuItem, Divider } from '@mui/material';
-import { ContextMenu } from './types';
 import { useStyles } from './style';
 import { useStyles } from './style';
-import { CollectionObject } from '@server/types';
+import type { ContextMenu } from './types';
+import type { CollectionObject } from '@server/types';
 
 
 export const TreeContextMenu = (props: {
 export const TreeContextMenu = (props: {
   onClick: Function;
   onClick: Function;

+ 1 - 1
client/src/pages/databases/tree/types.ts

@@ -1,5 +1,5 @@
-import { CollectionObject, DatabaseObject } from '@server/types';
 import { Params } from 'react-router-dom';
 import { Params } from 'react-router-dom';
+import type { CollectionObject, DatabaseObject } from '@server/types';
 
 
 export type TreeNodeType = 'db' | 'collection' | 'partition' | 'segment';
 export type TreeNodeType = 'db' | 'collection' | 'partition' | 'segment';
 export type TreeNodeObject = CollectionObject | DatabaseObject | null;
 export type TreeNodeObject = CollectionObject | DatabaseObject | null;

+ 1 - 1
client/src/pages/databases/types.ts

@@ -1,4 +1,4 @@
-import { FieldObject, CollectionObject, PartitionData } from '@server/types';
+import type { FieldObject, CollectionObject, PartitionData } from '@server/types';
 
 
 export type SearchSingleParams = {
 export type SearchSingleParams = {
   anns_field: string;
   anns_field: string;

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

@@ -3,9 +3,9 @@ import { Typography, Theme } from '@mui/material';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
-import { CompactDialogProps } from './Types';
 import { SegmentService } from '@/http';
 import { SegmentService } from '@/http';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { CompactDialogProps } from './Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   desc: {
   desc: {

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

@@ -6,9 +6,9 @@ import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import CustomInput from '@/components/customInput/CustomInput';
 import CustomInput from '@/components/customInput/CustomInput';
 import { formatForm } from '@/utils';
 import { formatForm } from '@/utils';
 import { useFormValidation } from '@/hooks';
 import { useFormValidation } from '@/hooks';
-import { ITextfieldConfig } from '@/components/customInput/Types';
-import { CollectionObject } from '@server/types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { ITextfieldConfig } from '@/components/customInput/Types';
+import type { CollectionObject } from '@server/types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   desc: {
   desc: {

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

@@ -1,4 +1,4 @@
-import { Theme, Checkbox, FormControlLabel } from '@mui/material';
+import { Theme, Checkbox } from '@mui/material';
 import { FC, useContext, useMemo, useState, ChangeEvent } from 'react';
 import { FC, useContext, useMemo, useState, ChangeEvent } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
@@ -16,13 +16,13 @@ import {
   FunctionType,
   FunctionType,
 } from '@/consts';
 } from '@/consts';
 import CreateFields from './create/CreateFields';
 import CreateFields from './create/CreateFields';
-import {
+import { CONSISTENCY_LEVEL_OPTIONS } from './create/Constants';
+import { makeStyles } from '@mui/styles';
+import type {
   CollectionCreateParam,
   CollectionCreateParam,
   CollectionCreateProps,
   CollectionCreateProps,
   CreateField,
   CreateField,
 } from '../databases/collections/Types';
 } from '../databases/collections/Types';
-import { CONSISTENCY_LEVEL_OPTIONS } from './create/Constants';
-import { makeStyles } from '@mui/styles';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   dialog: {
   dialog: {

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

@@ -10,7 +10,7 @@ import { formatForm } from '@/utils';
 import { PartitionService } from '@/http';
 import { PartitionService } from '@/http';
 import { PartitionCreateProps } from './Types';
 import { PartitionCreateProps } from './Types';
 import { PartitionManageParam } from '../databases/collections/partitions/Types';
 import { PartitionManageParam } from '../databases/collections/partitions/Types';
-import { ManageRequestMethods } from '../../types/Common';
+import { ManageRequestMethods } from '@/consts';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({

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

@@ -4,7 +4,7 @@ import { rootContext } from '@/context';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import { PartitionService } from '@/http';
 import { PartitionService } from '@/http';
 import { PartitionManageParam } from '../databases/collections/partitions/Types';
 import { PartitionManageParam } from '../databases/collections/partitions/Types';
-import { ManageRequestMethods } from '../../types/Common';
+import { ManageRequestMethods } from '@/consts';
 import { DropPartitionProps } from './Types';
 import { DropPartitionProps } from './Types';
 
 
 const DropPartitionDialog: FC<DropPartitionProps> = props => {
 const DropPartitionDialog: FC<DropPartitionProps> = props => {

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

@@ -7,8 +7,8 @@ import CustomInput from '@/components/customInput/CustomInput';
 import { formatForm } from '@/utils';
 import { formatForm } from '@/utils';
 import { useFormValidation } from '@/hooks';
 import { useFormValidation } from '@/hooks';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { ITextfieldConfig } from '@/components/customInput/Types';
-import { CollectionObject } from '@server/types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { CollectionObject } from '@server/types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

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

@@ -10,12 +10,12 @@ import { linter } from '@codemirror/lint';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
-import { CollectionFullObject } from '@server/types';
 import { DataService } from '@/http';
 import { DataService } from '@/http';
 import { DYNAMIC_FIELD } from '@/consts';
 import { DYNAMIC_FIELD } from '@/consts';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
 import { githubLight } from '@ddietr/codemirror-themes/github-light';
 import { githubLight } from '@ddietr/codemirror-themes/github-light';
 import { githubDark } from '@ddietr/codemirror-themes/github-dark';
 import { githubDark } from '@ddietr/codemirror-themes/github-dark';
+import type { CollectionFullObject } from '@server/types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   code: {
   code: {

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

@@ -7,10 +7,10 @@ import CustomInput from '@/components/customInput/CustomInput';
 import { formatForm } from '@/utils';
 import { formatForm } from '@/utils';
 import { IForm, useFormValidation } from '@/hooks';
 import { IForm, useFormValidation } from '@/hooks';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { ITextfieldConfig } from '@/components/customInput/Types';
-import { CollectionObject } from '@server/types';
 import { Property } from '@/consts';
 import { Property } from '@/consts';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
 import { DatabaseService } from '@/http';
 import { DatabaseService } from '@/http';
+import type { CollectionObject } from '@server/types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   desc: {
   desc: {

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

@@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import { DataService } from '@/http';
 import { DataService } from '@/http';
-import { CollectionObject } from '@server/types';
+import type { CollectionObject } from '@server/types';
 
 
 export interface EmptyDataProps {
 export interface EmptyDataProps {
   collection: CollectionObject;
   collection: CollectionObject;

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

@@ -3,9 +3,9 @@ import { Typography, Theme } from '@mui/material';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
-import { FlushDialogProps } from './Types';
 import { DataService } from '@/http';
 import { DataService } from '@/http';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { FlushDialogProps } from './Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   desc: {
   desc: {

+ 2 - 2
client/src/pages/dialogs/ImportSampleDialog.tsx

@@ -5,12 +5,12 @@ import { saveAs } from 'file-saver';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import CustomSelector from '@/components/customSelector/CustomSelector';
 import CustomSelector from '@/components/customSelector/CustomSelector';
 import { rootContext } from '@/context';
 import { rootContext } from '@/context';
-import { InsertStatusEnum } from './insert/Types';
+import { InsertStatusEnum } from './insert/consts';
 import { DataService } from '@/http';
 import { DataService } from '@/http';
 import { LoadSampleParam } from './Types';
 import { LoadSampleParam } from './Types';
 import icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
-import { CollectionObject } from '@server/types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { CollectionObject } from '@server/types';
 
 
 const DownloadIcon = icons.download;
 const DownloadIcon = icons.download;
 
 

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

@@ -11,7 +11,7 @@ import { ITextfieldConfig } from '@/components/customInput/Types';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import CustomToolTip from '@/components/customToolTip/CustomToolTip';
 import CustomToolTip from '@/components/customToolTip/CustomToolTip';
 import icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
-import { CollectionObject } from '@server/types';
+import type { CollectionObject } from '@server/types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({

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

@@ -3,8 +3,8 @@ import { Typography, Theme } from '@mui/material';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import { rootContext, dataContext } from '@/context';
 import { rootContext, dataContext } from '@/context';
-import { CollectionObject } from '@server/types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { CollectionObject } from '@server/types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   desc: {
   desc: {

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

@@ -6,9 +6,9 @@ import { formatForm } from '@/utils';
 import { useFormValidation } from '@/hooks';
 import { useFormValidation } from '@/hooks';
 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 { CollectionObject } from '@server/types';
 import { makeStyles } from '@mui/styles';
 import { makeStyles } from '@mui/styles';
+import type { ITextfieldConfig } from '@/components/customInput/Types';
+import type { CollectionObject } from '@server/types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   desc: {
   desc: {

Some files were not shown because too many files changed in this diff