Browse Source

refactor context import/export

Signed-off-by: ruiyi.jiang <ruiyi.jiang@zilliz.com>
ruiyi.jiang 1 year ago
parent
commit
146fdb7208
45 changed files with 116 additions and 116 deletions
  1. 8 6
      client/src/App.tsx
  2. 1 1
      client/src/components/__test__/customDialog/CustomDialog.spec.tsx
  3. 1 1
      client/src/components/__test__/customSnackBar/CustomSnackBar.spec.tsx
  4. 4 4
      client/src/components/customDialog/DeleteDialogTemplate.tsx
  5. 1 1
      client/src/components/customDialog/Types.ts
  6. 1 1
      client/src/components/customSnackBar/Types.ts
  7. 4 5
      client/src/components/layout/GlobalEffect.tsx
  8. 3 5
      client/src/components/layout/Header.tsx
  9. 1 1
      client/src/components/uploader/Uploader.tsx
  10. 2 2
      client/src/context/Auth.tsx
  11. 1 1
      client/src/context/Navigation.tsx
  12. 6 7
      client/src/context/Prometheus.tsx
  13. 4 4
      client/src/context/Root.tsx
  14. 2 2
      client/src/context/Types.ts
  15. 7 7
      client/src/context/WebSocket.tsx
  16. 7 0
      client/src/context/index.tsx
  17. 1 1
      client/src/hooks/Dialog.tsx
  18. 2 2
      client/src/hooks/Navigation.ts
  19. 1 1
      client/src/pages/collections/Aliases.tsx
  20. 1 1
      client/src/pages/collections/Collection.tsx
  21. 7 5
      client/src/pages/collections/Collections.tsx
  22. 5 7
      client/src/pages/connect/AuthForm.tsx
  23. 2 2
      client/src/pages/database/Database.tsx
  24. 2 2
      client/src/pages/dialogs/CreateAliasDialog.tsx
  25. 1 1
      client/src/pages/dialogs/CreateCollectionDialog.tsx
  26. 1 1
      client/src/pages/dialogs/CreatePartitionDialog.tsx
  27. 1 1
      client/src/pages/dialogs/DropCollectionDialog.tsx
  28. 1 1
      client/src/pages/dialogs/DropPartitionDialog.tsx
  29. 1 1
      client/src/pages/dialogs/ImportSampleDialog.tsx
  30. 2 3
      client/src/pages/dialogs/LoadCollectionDialog.tsx
  31. 1 1
      client/src/pages/dialogs/ReleaseCollectionDialog.tsx
  32. 1 1
      client/src/pages/dialogs/RenameCollectionDialog.tsx
  33. 5 5
      client/src/pages/dialogs/insert/Dialog.tsx
  34. 7 9
      client/src/pages/index.tsx
  35. 1 3
      client/src/pages/overview/Overview.tsx
  36. 1 1
      client/src/pages/overview/collectionCard/CollectionCard.tsx
  37. 1 1
      client/src/pages/partitions/Partitions.tsx
  38. 1 1
      client/src/pages/query/Query.tsx
  39. 1 1
      client/src/pages/schema/IndexTypeElement.tsx
  40. 1 1
      client/src/pages/search/SearchParams.tsx
  41. 1 1
      client/src/pages/search/VectorSearch.tsx
  42. 2 2
      client/src/pages/systemHealthy/Topology.tsx
  43. 1 1
      client/src/pages/user/Roles.tsx
  44. 1 1
      client/src/pages/user/User.tsx
  45. 10 10
      client/src/router/Router.tsx

+ 8 - 6
client/src/App.tsx

@@ -1,12 +1,14 @@
 import { MuiPickersUtilsProvider } from '@material-ui/pickers';
 import { MuiPickersUtilsProvider } from '@material-ui/pickers';
 import DayjsUtils from '@date-io/dayjs';
 import DayjsUtils from '@date-io/dayjs';
 import Router from './router/Router';
 import Router from './router/Router';
-import { RootProvider } from './context/Root';
-import { NavProvider } from './context/Navigation';
-import { AuthProvider } from './context/Auth';
-import { WebSocketProvider } from './context/WebSocket';
-import { PrometheusProvider } from './context/Prometheus';
-import { DatabaseProvider } from './context/Database';
+import {
+  RootProvider,
+  NavProvider,
+  AuthProvider,
+  WebSocketProvider,
+  PrometheusProvider,
+  DatabaseProvider,
+} from './context';
 
 
 function App() {
 function App() {
   return (
   return (

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

@@ -1,5 +1,5 @@
 import { screen, fireEvent, render } from '@testing-library/react';
 import { screen, fireEvent, render } from '@testing-library/react';
-import { DialogType } from '../../../context/Types';
+import { DialogType } from '@/context';
 import CustomDialog from '../../customDialog/CustomDialog';
 import CustomDialog from '../../customDialog/CustomDialog';
 import { vi } from 'vitest';
 import { vi } from 'vitest';
 
 

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

@@ -1,5 +1,5 @@
 import { render, screen } from '@testing-library/react';
 import { render, screen } from '@testing-library/react';
-import { SnackBarType } from '../../../context/Types';
+import { SnackBarType } from '@/context';
 import CustomSnackBar from '../../customSnackBar/CustomSnackBar';
 import CustomSnackBar from '../../customSnackBar/CustomSnackBar';
 import { vi } from 'vitest';
 import { vi } from 'vitest';
 
 

+ 4 - 4
client/src/components/customDialog/DeleteDialogTemplate.tsx

@@ -10,10 +10,10 @@ import {
 } from '@material-ui/core';
 } from '@material-ui/core';
 import { ChangeEvent, FC, useContext, useState } from 'react';
 import { ChangeEvent, FC, useContext, useState } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import CustomButton from '../../components/customButton/CustomButton';
-import CustomDialogTitle from '../../components/customDialog/CustomDialogTitle';
-import { DeleteDialogContentType } from '../../components/customDialog/Types';
-import { rootContext } from '../../context/Root';
+import CustomButton from '@/components/customButton/CustomButton';
+import CustomDialogTitle from '@/components/customDialog/CustomDialogTitle';
+import { DeleteDialogContentType } from '@/components/customDialog/Types';
+import { rootContext } from '@/context';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   root: {
   root: {

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

@@ -1,5 +1,5 @@
 import { ReactElement } from 'react';
 import { ReactElement } from 'react';
-import { DialogType } from '../../context/Types';
+import { DialogType } from '@/context';
 import { CodeViewData } from '../code/Types';
 import { CodeViewData } from '../code/Types';
 export type CustomDialogType = DialogType & {
 export type CustomDialogType = DialogType & {
   onClose: () => void;
   onClose: () => void;

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

@@ -1,2 +1,2 @@
-import { SnackBarType } from '../../context/Types';
+import { SnackBarType } from '@/context';
 export type CustomSnackBarType = SnackBarType & { onClose: () => void };
 export type CustomSnackBarType = SnackBarType & { onClose: () => void };

+ 4 - 5
client/src/components/layout/GlobalEffect.tsx

@@ -1,9 +1,8 @@
 import React, { useContext } from 'react';
 import React, { useContext } from 'react';
-import axiosInstance from '../../http/Axios';
-import { rootContext } from '../../context/Root';
-import { HTTP_STATUS_CODE } from '../../consts/Http';
-import { authContext } from '../../context/Auth';
-import { MILVUS_ADDRESS } from '../../consts/Localstorage';
+import axiosInstance from '@/http/Axios';
+import { rootContext, authContext } from '@/context';
+import { HTTP_STATUS_CODE } from '@/consts/Http';
+import { MILVUS_ADDRESS } from '@/consts/Localstorage';
 
 
 let axiosResInterceptor: number | null = null;
 let axiosResInterceptor: number | null = null;
 // let timer: Record<string, ReturnType<typeof setTimeout> | number>[] = [];
 // let timer: Record<string, ReturnType<typeof setTimeout> | number>[] = [];

+ 3 - 5
client/src/components/layout/Header.tsx

@@ -1,10 +1,8 @@
-import { FC, useContext, useEffect } from 'react';
+import { FC, useContext } from 'react';
+import { useTranslation } from 'react-i18next';
 import { makeStyles, Theme, createStyles, Typography } from '@material-ui/core';
 import { makeStyles, Theme, createStyles, Typography } from '@material-ui/core';
 import { useNavigate } from 'react-router-dom';
 import { useNavigate } from 'react-router-dom';
-import { navContext } from '@/context/Navigation';
-import { databaseContext } from '@/context/Database';
-import { authContext } from '@/context/Auth';
-import { useTranslation } from 'react-i18next';
+import { navContext, databaseContext, authContext } from '@/context';
 import { MilvusHttp } from '@/http/Milvus';
 import { MilvusHttp } from '@/http/Milvus';
 import { MILVUS_ADDRESS } from '@/consts/Localstorage';
 import { MILVUS_ADDRESS } from '@/consts/Localstorage';
 import CustomSelector from '@/components/customSelector/CustomSelector';
 import CustomSelector from '@/components/customSelector/CustomSelector';

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

@@ -1,6 +1,6 @@
 import { makeStyles, Theme } from '@material-ui/core';
 import { makeStyles, Theme } from '@material-ui/core';
 import { FC, useContext, useRef } from 'react';
 import { FC, useContext, useRef } from 'react';
-import { rootContext } from '../../context/Root';
+import { rootContext } from '@/context';
 import CustomButton from '../customButton/CustomButton';
 import CustomButton from '../customButton/CustomButton';
 import { UploaderProps } from './Types';
 import { UploaderProps } from './Types';
 
 

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

@@ -1,6 +1,6 @@
 import { createContext, useEffect, useState } from 'react';
 import { createContext, useEffect, useState } from 'react';
-import { MILVUS_ADDRESS } from '../consts/Localstorage';
-import { MilvusHttp } from '../http/Milvus';
+import { MILVUS_ADDRESS } from '@/consts/Localstorage';
+import { MilvusHttp } from '@/http/Milvus';
 import { AuthContextType } from './Types';
 import { AuthContextType } from './Types';
 
 
 export const authContext = createContext<AuthContextType>({
 export const authContext = createContext<AuthContextType>({

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

@@ -1,6 +1,6 @@
 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 { NavInfo } from '@/router/Types';
 import { NavContextType } from './Types';
 import { NavContextType } from './Types';
 
 
 export const navContext = createContext<NavContextType>({
 export const navContext = createContext<NavContextType>({

+ 6 - 7
client/src/context/Prometheus.tsx

@@ -1,22 +1,21 @@
 import React, { createContext, useContext, useEffect, useState } from 'react';
 import React, { createContext, useContext, useEffect, useState } from 'react';
+import { useTranslation } from 'react-i18next';
+import { authContext, rootContext } from '@/context';
 import { PrometheusContextType } from './Types';
 import { PrometheusContextType } from './Types';
-import { authContext } from '../context/Auth';
 import {
 import {
   LAST_TIME_WITH_PROMETHEUS,
   LAST_TIME_WITH_PROMETHEUS,
   LAST_TIME_PROMETHEUS_ADDRESS,
   LAST_TIME_PROMETHEUS_ADDRESS,
   LAST_TIME_PROMETHEUS_INSTANCE,
   LAST_TIME_PROMETHEUS_INSTANCE,
   LAST_TIME_PROMETHEUS_NAMESPACE,
   LAST_TIME_PROMETHEUS_NAMESPACE,
-} from '../consts/Localstorage';
-import { formatPrometheusAddress } from '../utils/Format';
-import { PrometheusHttp } from '../http/Prometheus';
+} from '@/consts/Localstorage';
+import { formatPrometheusAddress } from '@/utils/Format';
+import { PrometheusHttp } from '@/http/Prometheus';
 import {
 import {
   PROMETHEUS_ADDRESS,
   PROMETHEUS_ADDRESS,
   PROMETHEUS_INSTANCE_NAME,
   PROMETHEUS_INSTANCE_NAME,
   PROMETHEUS_NAMESPACE,
   PROMETHEUS_NAMESPACE,
   WITH_PROMETHEUS,
   WITH_PROMETHEUS,
-} from '../consts/Prometheus';
-import { rootContext } from './Root';
-import { useTranslation } from 'react-i18next';
+} from '@/consts/Prometheus';
 
 
 export const prometheusContext = createContext<PrometheusContextType>({
 export const prometheusContext = createContext<PrometheusContextType>({
   withPrometheus: false,
   withPrometheus: false,

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

@@ -2,17 +2,17 @@ import { useState, useCallback, useEffect, useContext } from 'react';
 import React from 'react';
 import React from 'react';
 import { ThemeProvider, makeStyles } from '@material-ui/core/styles';
 import { ThemeProvider, makeStyles } from '@material-ui/core/styles';
 import { SwipeableDrawer } from '@material-ui/core';
 import { SwipeableDrawer } from '@material-ui/core';
-import { authContext } from '../context/Auth';
+import { authContext } from '@/context';
 import {
 import {
   RootContextType,
   RootContextType,
   DialogType,
   DialogType,
   SnackBarType,
   SnackBarType,
   OpenSnackBarType,
   OpenSnackBarType,
 } from './Types';
 } from './Types';
-import CustomSnackBar from '../components/customSnackBar/CustomSnackBar';
-import CustomDialog from '../components/customDialog/CustomDialog';
+import CustomSnackBar from '@/components/customSnackBar/CustomSnackBar';
+import CustomDialog from '@/components/customDialog/CustomDialog';
+import { MilvusHttp } from '@/http/Milvus';
 import { theme } from '../styles/theme';
 import { theme } from '../styles/theme';
-import { MilvusHttp } from '../http/Milvus';
 
 
 const DefaultDialogConfigs: DialogType = {
 const DefaultDialogConfigs: DialogType = {
   open: false,
   open: false,

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

@@ -1,6 +1,6 @@
 import { Dispatch, ReactElement, SetStateAction } from 'react';
 import { Dispatch, ReactElement, SetStateAction } from 'react';
-import { CollectionView } from '../pages/collections/Types';
-import { NavInfo } from '../router/Types';
+import { CollectionView } from '@/pages/collections/Types';
+import { NavInfo } from '@/router/Types';
 
 
 export type RootContextType = {
 export type RootContextType = {
   openSnackBar: OpenSnackBarType;
   openSnackBar: OpenSnackBarType;

+ 7 - 7
client/src/context/WebSocket.tsx

@@ -1,12 +1,12 @@
 import { createContext, useContext, useEffect, useState, useRef } from 'react';
 import { createContext, useContext, useEffect, useState, useRef } from 'react';
 import { io, Socket } from 'socket.io-client';
 import { io, Socket } from 'socket.io-client';
-import { WS_EVENTS, WS_EVENTS_TYPE } from '../consts/Http';
-import { authContext } from '../context/Auth';
-import { url } from '../http/Axios';
-import { CollectionHttp } from '../http/Collection';
-import { MilvusHttp } from '../http/Milvus';
-import { CollectionView } from '../pages/collections/Types';
-import { checkIndexBuilding, checkLoading } from '../utils/Validation';
+import { WS_EVENTS, WS_EVENTS_TYPE } from '@/consts/Http';
+import { authContext } from '@/context';
+import { url } from '@/http/Axios';
+import { CollectionHttp } from '@/http/Collection';
+import { MilvusHttp } from '@/http/Milvus';
+import { CollectionView } from '@/pages/collections/Types';
+import { checkIndexBuilding, checkLoading } from '@/utils/Validation';
 import { WebSocketType } from './Types';
 import { WebSocketType } from './Types';
 
 
 export const webSocketContext = createContext<WebSocketType>({
 export const webSocketContext = createContext<WebSocketType>({

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

@@ -0,0 +1,7 @@
+export * from './Auth';
+export * from './Database';
+export * from './Navigation';
+export * from './Prometheus';
+export * from './Root';
+export * from './Types';
+export * from './WebSocket';

+ 1 - 1
client/src/hooks/Dialog.tsx

@@ -1,5 +1,5 @@
 import { ReactElement, useContext } from 'react';
 import { ReactElement, useContext } from 'react';
-import { rootContext } from '../context/Root';
+import { rootContext } from '@/context';
 
 
 export const useInsertDialogHook = () => {
 export const useInsertDialogHook = () => {
   const { setDialog } = useContext(rootContext);
   const { setDialog } = useContext(rootContext);

+ 2 - 2
client/src/hooks/Navigation.ts

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

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

@@ -1,7 +1,7 @@
 import { useContext } from 'react';
 import { useContext } from 'react';
 import { Chip, IconButton, makeStyles, Theme } from '@material-ui/core';
 import { Chip, IconButton, makeStyles, Theme } from '@material-ui/core';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { rootContext } from '@/context/Root';
+import { rootContext } from '@/context';
 import { AliasesProps } from './Types';
 import { AliasesProps } from './Types';
 import icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
 import DeleteIcon from '@material-ui/icons/Delete';
 import DeleteIcon from '@material-ui/icons/Delete';

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

@@ -2,7 +2,7 @@ import { useMemo, useContext } from 'react';
 import { useNavigate, useLocation, useParams } from 'react-router-dom';
 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/Auth';
+import { authContext } from '@/context';
 import { useNavigationHook } from '@/hooks/Navigation';
 import { useNavigationHook } from '@/hooks/Navigation';
 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';

+ 7 - 5
client/src/pages/collections/Collections.tsx

@@ -2,8 +2,13 @@ import { useCallback, useContext, useEffect, useMemo, useState } from 'react';
 import { Link, useSearchParams } from 'react-router-dom';
 import { Link, useSearchParams } from 'react-router-dom';
 import { makeStyles, Theme } from '@material-ui/core';
 import { makeStyles, Theme } from '@material-ui/core';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { authContext } from '@/context/Auth';
-import { databaseContext } from '@/context/Database';
+import Highlighter from 'react-highlight-words';
+import {
+  rootContext,
+  authContext,
+  databaseContext,
+  webSocketContext,
+} from '@/context';
 import { useNavigationHook } from '@/hooks/Navigation';
 import { useNavigationHook } from '@/hooks/Navigation';
 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';
@@ -17,19 +22,16 @@ import Status from '@/components/status/Status';
 import { ChildrenStatusType } from '@/components/status/Types';
 import { ChildrenStatusType } from '@/components/status/Types';
 import StatusIcon from '@/components/status/StatusIcon';
 import StatusIcon from '@/components/status/StatusIcon';
 import CustomToolTip from '@/components/customToolTip/CustomToolTip';
 import CustomToolTip from '@/components/customToolTip/CustomToolTip';
-import { rootContext } from '@/context/Root';
 import CreateCollectionDialog from '../dialogs/CreateCollectionDialog';
 import CreateCollectionDialog from '../dialogs/CreateCollectionDialog';
 import { CollectionHttp } from '@/http/Collection';
 import { CollectionHttp } from '@/http/Collection';
 import LoadCollectionDialog from '../dialogs/LoadCollectionDialog';
 import LoadCollectionDialog from '../dialogs/LoadCollectionDialog';
 import ReleaseCollectionDialog from '../dialogs/ReleaseCollectionDialog';
 import ReleaseCollectionDialog from '../dialogs/ReleaseCollectionDialog';
 import DropCollectionDialog from '../dialogs/DropCollectionDialog';
 import DropCollectionDialog from '../dialogs/DropCollectionDialog';
 import RenameCollectionDialog from '../dialogs/RenameCollectionDialog';
 import RenameCollectionDialog from '../dialogs/RenameCollectionDialog';
-import Highlighter from 'react-highlight-words';
 import InsertDialog from '../dialogs/insert/Dialog';
 import InsertDialog from '../dialogs/insert/Dialog';
 import ImportSampleDialog from '../dialogs/ImportSampleDialog';
 import ImportSampleDialog from '../dialogs/ImportSampleDialog';
 import { MilvusHttp } from '@/http/Milvus';
 import { MilvusHttp } from '@/http/Milvus';
 import { LOADING_STATE } from '@/consts/Milvus';
 import { LOADING_STATE } from '@/consts/Milvus';
-import { webSocketContext } from '@/context/WebSocket';
 import { WS_EVENTS, WS_EVENTS_TYPE } from '@/consts/Http';
 import { WS_EVENTS, WS_EVENTS_TYPE } from '@/consts/Http';
 import { checkIndexBuilding, checkLoading } from '@/utils/Validation';
 import { checkIndexBuilding, checkLoading } from '@/utils/Validation';
 import Aliases from './Aliases';
 import Aliases from './Aliases';

+ 5 - 7
client/src/pages/connect/AuthForm.tsx

@@ -1,21 +1,19 @@
 import React, { useContext, useMemo, useState } from 'react';
 import React, { useContext, useMemo, useState } from 'react';
-
 import { makeStyles, Theme, Typography } from '@material-ui/core';
 import { makeStyles, Theme, Typography } from '@material-ui/core';
+import { useTranslation } from 'react-i18next';
 import CustomButton from '@/components/customButton/CustomButton';
 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 { useTranslation } from 'react-i18next';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { ITextfieldConfig } from '@/components/customInput/Types';
 import { useFormValidation } from '@/hooks/Form';
 import { useFormValidation } from '@/hooks/Form';
 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';
-import { rootContext } from '@/context/Root';
-import { authContext } from '@/context/Auth';
-import { MILVUS_ADDRESS, LAST_TIME_ADDRESS } from '../../consts/Localstorage';
-import { MILVUS_URL } from '../../consts/Milvus';
+import { rootContext, authContext, prometheusContext } from '@/context';
+import {} from '@/context/Auth';
+import { MILVUS_ADDRESS, LAST_TIME_ADDRESS } from '@/consts/Localstorage';
+import { MILVUS_URL } from '@/consts/Milvus';
 import { CustomRadio } from '@/components/customRadio/CustomRadio';
 import { CustomRadio } from '@/components/customRadio/CustomRadio';
-import { prometheusContext } from '@/context/Prometheus';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

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

@@ -1,4 +1,4 @@
-import React, { useContext, useEffect, useState } from 'react';
+import { useContext, useEffect, useState } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import { DatabaseHttp } from '@/http/Database';
 import { DatabaseHttp } from '@/http/Database';
 import AttuGrid from '@/components/grid/Grid';
 import AttuGrid from '@/components/grid/Grid';
@@ -9,7 +9,7 @@ import {
   DatabaseData,
   DatabaseData,
 } from './Types';
 } from './Types';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
-import { rootContext } from '@/context/Root';
+import { rootContext } from '@/context';
 import { useNavigationHook } from '@/hooks/Navigation';
 import { useNavigationHook } from '@/hooks/Navigation';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import CreateUser from './Create';
 import CreateUser from './Create';

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

@@ -1,14 +1,14 @@
 import { FC, useContext, useMemo, useState } from 'react';
 import { FC, useContext, useMemo, useState } from 'react';
 import { Typography, makeStyles, Theme } from '@material-ui/core';
 import { Typography, makeStyles, Theme } from '@material-ui/core';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { rootContext } from '@/context/Root';
+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/Form';
 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 '../collections/Types';
+import { CreateAliasProps } from './Types';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   desc: {
   desc: {

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

@@ -5,7 +5,7 @@ import DialogTemplate from '@/components/customDialog/DialogTemplate';
 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 { ITextfieldConfig } from '@/components/customInput/Types';
 import { ITextfieldConfig } from '@/components/customInput/Types';
-import { rootContext } from '@/context/Root';
+import { rootContext } from '@/context';
 import { useFormValidation } from '@/hooks/Form';
 import { useFormValidation } from '@/hooks/Form';
 import { formatForm } from '@/utils/Form';
 import { formatForm } from '@/utils/Form';
 import { TypeEnum } from '@/utils/Validation';
 import { TypeEnum } from '@/utils/Validation';

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

@@ -1,7 +1,7 @@
 import { makeStyles, Theme } from '@material-ui/core';
 import { makeStyles, Theme } from '@material-ui/core';
 import { FC, useMemo, useState, useContext } from 'react';
 import { FC, useMemo, useState, useContext } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { rootContext } from '@/context/Root';
+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';

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

@@ -1,6 +1,6 @@
 import { FC, useContext } from 'react';
 import { FC, useContext } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { rootContext } from '@/context/Root';
+import { rootContext } from '@/context';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import { CollectionHttp } from '@/http/Collection';
 import { CollectionHttp } from '@/http/Collection';
 import { DropCollectionProps } from './Types';
 import { DropCollectionProps } from './Types';

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

@@ -1,6 +1,6 @@
 import { FC, useContext } from 'react';
 import { FC, useContext } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { rootContext } from '@/context/Root';
+import { rootContext } from '@/context';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import { DropPartitionProps } from './Types';
 import { DropPartitionProps } from './Types';
 import { PartitionHttp } from '@/http/Partition';
 import { PartitionHttp } from '@/http/Partition';

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

@@ -3,7 +3,7 @@ import { FC, useState, useContext } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 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/Root';
+import { rootContext } from '@/context';
 import { InsertStatusEnum } from './insert/Types';
 import { InsertStatusEnum } from './insert/Types';
 import { CollectionHttp } from '@/http/Collection';
 import { CollectionHttp } from '@/http/Collection';
 import { MilvusHttp } from '@/http/Milvus';
 import { MilvusHttp } from '@/http/Milvus';

+ 2 - 3
client/src/pages/dialogs/LoadCollectionDialog.tsx

@@ -7,9 +7,8 @@ import {
   FormControlLabel,
   FormControlLabel,
 } from '@material-ui/core';
 } from '@material-ui/core';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { authContext } from '@/context/Auth';
+import { authContext, rootContext } from '@/context';
 import { CollectionHttp } from '@/http/Collection';
 import { CollectionHttp } from '@/http/Collection';
-import { rootContext } from '@/context/Root';
 import { useFormValidation } from '@/hooks/Form';
 import { useFormValidation } from '@/hooks/Form';
 import { formatForm } from '@/utils/Form';
 import { formatForm } from '@/utils/Form';
 import { parseJson, getNode } from '@/utils/Metric';
 import { parseJson, getNode } from '@/utils/Metric';
@@ -18,7 +17,7 @@ import { ITextfieldConfig } from '@/components/customInput/Types';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import { MilvusHttp } from '@/http/Milvus';
 import { MilvusHttp } from '@/http/Milvus';
 import CustomToolTip from '@/components/customToolTip/CustomToolTip';
 import CustomToolTip from '@/components/customToolTip/CustomToolTip';
-import { MILVUS_NODE_TYPE, MILVUS_DEPLOY_MODE } from '../../consts/Milvus';
+import { MILVUS_NODE_TYPE, MILVUS_DEPLOY_MODE } from '@/consts/Milvus';
 import icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({

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

@@ -2,7 +2,7 @@ import { useContext, useState } from 'react';
 import { Typography, makeStyles, Theme } from '@material-ui/core';
 import { Typography, makeStyles, Theme } from '@material-ui/core';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import { CollectionHttp } from '@/http/Collection';
 import { CollectionHttp } from '@/http/Collection';
-import { rootContext } from '@/context/Root';
+import { rootContext } from '@/context';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({

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

@@ -1,7 +1,7 @@
 import { FC, useContext, useMemo, useState } from 'react';
 import { FC, useContext, useMemo, useState } from 'react';
 import { Typography, makeStyles, Theme } from '@material-ui/core';
 import { Typography, makeStyles, Theme } from '@material-ui/core';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { rootContext } from '@/context/Root';
+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';

+ 5 - 5
client/src/pages/dialogs/insert/Dialog.tsx

@@ -8,10 +8,14 @@ import {
   useMemo,
   useMemo,
   useState,
   useState,
 } from 'react';
 } from 'react';
+import { parse } from 'papaparse';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
 import icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
-import { rootContext } from '@/context/Root';
+import { rootContext } from '@/context';
+import { Option } from '@/components/customSelector/Types';
+import { PartitionHttp } from '@/http/Partition';
+import { combineHeadsAndData } from '@/utils/Insert';
 import InsertImport from './Import';
 import InsertImport from './Import';
 import InsertPreview from './Preview';
 import InsertPreview from './Preview';
 import InsertStatus from './Status';
 import InsertStatus from './Status';
@@ -20,10 +24,6 @@ import {
   InsertStatusEnum,
   InsertStatusEnum,
   InsertStepperEnum,
   InsertStepperEnum,
 } from './Types';
 } from './Types';
-import { Option } from '@/components/customSelector/Types';
-import { parse } from 'papaparse';
-import { PartitionHttp } from '@/http/Partition';
-import { combineHeadsAndData } from '@/utils/Insert';
 
 
 const getStyles = makeStyles((theme: Theme) => ({
 const getStyles = makeStyles((theme: Theme) => ({
   icon: {
   icon: {

+ 7 - 9
client/src/pages/index.tsx

@@ -2,15 +2,13 @@ import { useMemo, useContext } from 'react';
 import { Outlet, useNavigate, useLocation, Navigate } from 'react-router-dom';
 import { Outlet, useNavigate, useLocation, Navigate } from 'react-router-dom';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import { makeStyles, Theme, createStyles } from '@material-ui/core';
 import { makeStyles, Theme, createStyles } from '@material-ui/core';
-import GlobalEffect from '../components/layout/GlobalEffect';
-import Header from '../components/layout/Header';
-import NavMenu from '../components/menu/NavMenu';
-import { NavMenuItem } from '../components/menu/Types';
-import icons from '../components/icons/Icons';
-import { authContext } from '../context/Auth';
-import { rootContext } from '../context/Root';
-import Overview from '../pages/overview/Overview';
-import { prometheusContext } from '../context/Prometheus';
+import GlobalEffect from '@/components/layout/GlobalEffect';
+import Header from '@/components/layout/Header';
+import NavMenu from '@/components/menu/NavMenu';
+import { NavMenuItem } from '@/components/menu/Types';
+import icons from '@/components/icons/Icons';
+import { authContext, rootContext, prometheusContext } from '@/context';
+import Overview from '@/pages/overview/Overview';
 
 
 const useStyles = makeStyles((theme: Theme) =>
 const useStyles = makeStyles((theme: Theme) =>
   createStyles({
   createStyles({

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

@@ -1,13 +1,11 @@
 import { makeStyles, Theme, Typography, useTheme } from '@material-ui/core';
 import { makeStyles, Theme, Typography, useTheme } from '@material-ui/core';
 import { useCallback, useContext, useEffect, useMemo, useState } from 'react';
 import { useCallback, useContext, useEffect, useMemo, useState } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
-import { databaseContext } from '@/context/Database';
+import { rootContext, webSocketContext, databaseContext } from '@/context';
 import EmptyCard from '@/components/cards/EmptyCard';
 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 { rootContext } from '@/context/Root';
-import { webSocketContext } from '@/context/WebSocket';
 import { useNavigationHook } from '@/hooks/Navigation';
 import { useNavigationHook } from '@/hooks/Navigation';
 import { CollectionHttp } from '@/http/Collection';
 import { CollectionHttp } from '@/http/Collection';
 import { MilvusHttp } from '@/http/Milvus';
 import { MilvusHttp } from '@/http/Milvus';

+ 1 - 1
client/src/pages/overview/collectionCard/CollectionCard.tsx

@@ -9,7 +9,7 @@ import CustomIconButton from '@/components/customButton/CustomIconButton';
 import { useNavigate, Link } from 'react-router-dom';
 import { useNavigate, Link } from 'react-router-dom';
 import { LOADING_STATE } from '@/consts/Milvus';
 import { LOADING_STATE } from '@/consts/Milvus';
 import ReleaseCollectionDialog from '../../dialogs/ReleaseCollectionDialog';
 import ReleaseCollectionDialog from '../../dialogs/ReleaseCollectionDialog';
-import { rootContext } from '@/context/Root';
+import { rootContext } from '@/context';
 
 
 const useStyles = makeStyles((theme: Theme) => ({
 const useStyles = makeStyles((theme: Theme) => ({
   wrapper: {
   wrapper: {

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

@@ -8,7 +8,7 @@ import { useTranslation } from 'react-i18next';
 import { usePaginationHook } from '@/hooks/Pagination';
 import { usePaginationHook } from '@/hooks/Pagination';
 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/Root';
+import { rootContext } from '@/context';
 import { PartitionHttp } from '@/http/Partition';
 import { PartitionHttp } from '@/http/Partition';
 import Highlighter from 'react-highlight-words';
 import Highlighter from 'react-highlight-words';
 import { useInsertDialogHook } from '@/hooks/Dialog';
 import { useInsertDialogHook } from '@/hooks/Dialog';

+ 1 - 1
client/src/pages/query/Query.tsx

@@ -2,7 +2,7 @@ import { FC, useEffect, useState, useRef, useContext } from 'react';
 import { TextField } from '@material-ui/core';
 import { TextField } from '@material-ui/core';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import { Parser } from '@json2csv/plainjs';
 import { Parser } from '@json2csv/plainjs';
-import { rootContext } from '@/context/Root';
+import { rootContext } from '@/context';
 import EmptyCard from '@/components/cards/EmptyCard';
 import EmptyCard from '@/components/cards/EmptyCard';
 import icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
 import CustomButton from '@/components/customButton/CustomButton';
 import CustomButton from '@/components/customButton/CustomButton';

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

@@ -11,7 +11,7 @@ import {
 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 icons from '@/components/icons/Icons';
 import icons from '@/components/icons/Icons';
-import { rootContext } from '@/context/Root';
+import { rootContext } from '@/context';
 import CreateIndex from './Create';
 import CreateIndex from './Create';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import StatusIcon from '@/components/status/StatusIcon';
 import StatusIcon from '@/components/status/StatusIcon';

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

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

+ 1 - 1
client/src/pages/search/VectorSearch.tsx

@@ -7,7 +7,7 @@ import { useNavigationHook } from '@/hooks/Navigation';
 import { useSearchResult } from '@/hooks/Result';
 import { useSearchResult } from '@/hooks/Result';
 import { usePaginationHook } from '@/hooks/Pagination';
 import { usePaginationHook } from '@/hooks/Pagination';
 import { useTimeTravelHook } from '@/hooks/TimeTravel';
 import { useTimeTravelHook } from '@/hooks/TimeTravel';
-import { databaseContext } from '@/context/Database';
+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';
 import AttuGrid from '@/components/grid/Grid';
 import AttuGrid from '@/components/grid/Grid';

+ 2 - 2
client/src/pages/systemHealthy/Topology.tsx

@@ -1,5 +1,5 @@
 import { makeStyles, Theme, useTheme } from '@material-ui/core';
 import { makeStyles, Theme, useTheme } from '@material-ui/core';
-import { Dispatch, memo, useContext } from 'react';
+import { useContext } from 'react';
 import {
 import {
   TOPO_HEIGHT,
   TOPO_HEIGHT,
   TOPO_LINK_LENGTH,
   TOPO_LINK_LENGTH,
@@ -10,7 +10,7 @@ import { getIcon } from './getIcon';
 import { ENodeService, ENodeType, INodeTreeStructure } from './Types';
 import { ENodeService, ENodeType, INodeTreeStructure } from './Types';
 import clsx from 'clsx';
 import clsx from 'clsx';
 import { formatPrometheusAddress } from '@/utils/Format';
 import { formatPrometheusAddress } from '@/utils/Format';
-import { prometheusContext } from '@/context/Prometheus';
+import { prometheusContext } from '@/context';
 
 
 const getStyles = makeStyles((theme: Theme) => ({
 const getStyles = makeStyles((theme: Theme) => ({
   root: {
   root: {

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

@@ -6,7 +6,7 @@ import AttuGrid from '@/components/grid/Grid';
 import { ColDefinitionsType, ToolBarConfig } from '@/components/grid/Types';
 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/Root';
+import { rootContext } from '@/context';
 import { useNavigationHook } from '@/hooks/Navigation';
 import { useNavigationHook } from '@/hooks/Navigation';
 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/User.tsx

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

+ 10 - 10
client/src/router/Router.tsx

@@ -1,15 +1,15 @@
 import { createHashRouter, RouterProvider } from 'react-router-dom';
 import { createHashRouter, RouterProvider } from 'react-router-dom';
 import { useContext } from 'react';
 import { useContext } from 'react';
-import { authContext } from '../context/Auth';
-import Collection from '../pages/collections/Collection';
-import Collections from '../pages/collections/Collections';
-import Connect from '../pages/connect/Connect';
-import Users from '../pages/user/Users';
-import Database from '../pages/database/Database';
-import Index from '../pages/index';
-import Search from '../pages/search/VectorSearch';
-import System from '../pages/system/SystemView';
-import SystemHealthy from '../pages/systemHealthy/SystemHealthyView';
+import { authContext } from '@/context';
+import Collection from '@/pages/collections/Collection';
+import Collections from '@/pages/collections/Collections';
+import Connect from '@/pages/connect/Connect';
+import Users from '@/pages/user/Users';
+import Database from '@/pages/database/Database';
+import Index from '@/pages/index';
+import Search from '@/pages/search/VectorSearch';
+import System from '@/pages/system/SystemView';
+import SystemHealthy from '@/pages/systemHealthy/SystemHealthyView';
 
 
 const routeObj = [
 const routeObj = [
   {
   {