diff --git a/packages/base/src/locale/zh-CN/dmsNotFound.ts b/packages/base/src/locale/zh-CN/dmsNotFound.ts deleted file mode 100644 index 934f63003..000000000 --- a/packages/base/src/locale/zh-CN/dmsNotFound.ts +++ /dev/null @@ -1,12 +0,0 @@ -// eslint-disable-next-line import/no-anonymous-default-export -export default { - pageTitle: '页面未找到', - errorCode: '404', - errorTitle: '抱歉,您访问的页面不存在', - cbErrorTitle: '抱歉,SQL工作台暂时无法访问', - contactSupport: '联系技术支持', - suggestions: '建议', - suggestion1: '检查URL是否正确输入', - suggestion2: '使用导航菜单查找您需要的页面', - suggestion3: '如果问题持续存在,请联系我们的技术支持团队' -}; diff --git a/packages/base/src/locale/zh-CN/index.ts b/packages/base/src/locale/zh-CN/index.ts index 02f53ec46..e748dcbd2 100644 --- a/packages/base/src/locale/zh-CN/index.ts +++ b/packages/base/src/locale/zh-CN/index.ts @@ -15,7 +15,6 @@ import dmsDataExport from './dmsDataExport'; import dmsGlobalDataSource from './dmsGlobalDataSource'; import resourceOverview from './resourceOverview'; import availabilityZone from './availabilityZone'; -import dmsNotFound from './dmsNotFound'; // eslint-disable-next-line import/no-anonymous-default-export export default { translation: { @@ -34,7 +33,6 @@ export default { dmsDataExport, dmsGlobalDataSource, resourceOverview, - availabilityZone, - dmsNotFound + availabilityZone } }; diff --git a/packages/base/src/page/NotFoundPage/__tests__/__snapshots__/index.test.tsx.snap b/packages/base/src/page/NotFoundPage/__tests__/__snapshots__/index.test.tsx.snap deleted file mode 100644 index 0a282fd6c..000000000 --- a/packages/base/src/page/NotFoundPage/__tests__/__snapshots__/index.test.tsx.snap +++ /dev/null @@ -1,943 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`NotFoundPage should render CloudBeaver error page when is CloudBeaver page 1`] = ` - -
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - -
-
- 抱歉,SQL工作台暂时无法访问 -
-
-
-
-
-
- -
-
-
-
-
-
- - - 建议 - - -
-
-
    -
  • - 检查URL是否正确输入 -
  • -
  • - 使用导航菜单查找您需要的页面 -
  • -
  • - 如果问题持续存在,请联系我们的技术支持团队 -
  • -
-
-
-
-
-
-
-
-
-
-
- -`; - -exports[`NotFoundPage should render correctly with loading state 1`] = ` - -
-
-
-
- - - - - - -
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - -
-
- 抱歉,您访问的页面不存在 -
-
-
-
-
-
- -
-
-
-
-
-
- - - 建议 - - -
-
-
    -
  • - 检查URL是否正确输入 -
  • -
  • - 使用导航菜单查找您需要的页面 -
  • -
  • - 如果问题持续存在,请联系我们的技术支持团队 -
  • -
-
-
-
-
-
-
-
-
-
-
- -`; - -exports[`NotFoundPage should render normal 404 page when not CloudBeaver page 1`] = ` - -
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - -
-
- 抱歉,您访问的页面不存在 -
-
-
-
-
-
- -
-
-
-
-
-
- - - 建议 - - -
-
-
    -
  • - 检查URL是否正确输入 -
  • -
  • - 使用导航菜单查找您需要的页面 -
  • -
  • - 如果问题持续存在,请联系我们的技术支持团队 -
  • -
-
-
-
-
-
-
-
-
-
-
- -`; diff --git a/packages/base/src/page/NotFoundPage/__tests__/index.test.tsx b/packages/base/src/page/NotFoundPage/__tests__/index.test.tsx deleted file mode 100644 index 926c85e48..000000000 --- a/packages/base/src/page/NotFoundPage/__tests__/index.test.tsx +++ /dev/null @@ -1,121 +0,0 @@ -import { fireEvent, screen, act } from '@testing-library/react'; -import { superRender } from '@actiontech/shared/lib/testUtil/superRender'; -import { - mockUseCurrentProject, - mockUseCurrentUser, - createSpySuccessResponse -} from '@actiontech/shared/lib/testUtil'; -import cloudBeaver from '@actiontech/shared/lib/testUtil/mockApi/base/cloudBeaver'; -import NotFoundPage from '../index'; -import { useNavigate } from 'react-router-dom'; - -jest.mock('react-router-dom', () => ({ - ...jest.requireActual('react-router-dom'), - useNavigate: jest.fn() -})); - -describe('NotFoundPage', () => { - let getSqlQueryUrlSpy: jest.SpyInstance; - const mockNavigate = jest.fn(); - - beforeEach(() => { - mockUseCurrentProject(); - mockUseCurrentUser(); - jest.useFakeTimers(); - getSqlQueryUrlSpy = cloudBeaver.getSqlQueryUrl(); - (useNavigate as jest.Mock).mockImplementation(() => mockNavigate); - mockNavigate.mockClear(); - }); - - afterEach(() => { - jest.useRealTimers(); - jest.clearAllMocks(); - }); - - it('should render correctly with loading state', () => { - const { baseElement } = superRender(); - expect(baseElement).toMatchSnapshot(); - }); - - it('should render normal 404 page when not CloudBeaver page', async () => { - getSqlQueryUrlSpy.mockImplementation(() => - createSpySuccessResponse({ - data: { - sql_query_root_uri: '/different/path' - } - }) - ); - - const { baseElement } = superRender(); - - await act(async () => jest.advanceTimersByTime(3000)); - - expect(getSqlQueryUrlSpy).toHaveBeenCalled(); - expect(screen.getByText('抱歉,您访问的页面不存在')).toBeInTheDocument(); - expect(screen.getByText('返回首页')).toBeInTheDocument(); - expect(screen.getByText('建议')).toBeInTheDocument(); - expect(screen.getByText('检查URL是否正确输入')).toBeInTheDocument(); - expect( - screen.getByText('使用导航菜单查找您需要的页面') - ).toBeInTheDocument(); - expect( - screen.getByText('如果问题持续存在,请联系我们的技术支持团队') - ).toBeInTheDocument(); - expect(baseElement).toMatchSnapshot(); - }); - - it('should render CloudBeaver error page when is CloudBeaver page', async () => { - const originalLocation = window.location; - Object.defineProperty(window, 'location', { - value: { - ...originalLocation, - pathname: '/cloudbeaver/test' - }, - writable: true - }); - - getSqlQueryUrlSpy.mockImplementation(() => - createSpySuccessResponse({ - data: { - sql_query_root_uri: '/cloudbeaver/test' - } - }) - ); - - const { baseElement } = superRender(); - - await act(async () => jest.advanceTimersByTime(3000)); - - expect(getSqlQueryUrlSpy).toHaveBeenCalled(); - expect(screen.getByText('抱歉,SQL工作台暂时无法访问')).toBeInTheDocument(); - expect(screen.getByText('返回首页')).toBeInTheDocument(); - expect(screen.getByText('建议')).toBeInTheDocument(); - expect(baseElement).toMatchSnapshot(); - - Object.defineProperty(window, 'location', { - value: originalLocation, - writable: true - }); - }); - - it('should navigate to home page when back to home button clicked', async () => { - getSqlQueryUrlSpy.mockImplementation(() => - createSpySuccessResponse({ - data: { - sql_query_root_uri: '/different/path' - } - }) - ); - - superRender(); - - await act(async () => jest.advanceTimersByTime(3000)); - - const backToHomeButton = screen.getByText('返回首页'); - expect(backToHomeButton).toBeInTheDocument(); - - fireEvent.click(backToHomeButton); - - expect(mockNavigate).toHaveBeenCalledWith('/'); - }); -}); diff --git a/packages/base/src/page/NotFoundPage/index.tsx b/packages/base/src/page/NotFoundPage/index.tsx deleted file mode 100644 index 281d74b2d..000000000 --- a/packages/base/src/page/NotFoundPage/index.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import React from 'react'; -import { useTranslation } from 'react-i18next'; -import { Typography, Space, Spin } from 'antd'; -import { BasicButton, BasicResult, ROUTE_PATHS } from '@actiontech/dms-kit'; -import { useTypedNavigate } from '@actiontech/shared'; -import { SuggestionList } from './style'; -import { DmsApi } from '@actiontech/shared/lib/api'; -import { useRequest } from 'ahooks'; - -const NotFoundPage: React.FC = () => { - const { t } = useTranslation(); - const navigate = useTypedNavigate(); - - const { data: isCloudBeaverPage, loading } = useRequest(() => { - return DmsApi.CloudBeaverService.GetSQLQueryConfiguration().then((res) => { - return res.data.data?.sql_query_root_uri === location.pathname; - }); - }); - - const handleBackToHome = () => { - navigate(ROUTE_PATHS.BASE.HOME); - }; - - return ( - - - - - {t('common.backToHome')} - - - - - - {t('dmsNotFound.suggestions')} - - -
  • {t('dmsNotFound.suggestion1')}
  • -
  • {t('dmsNotFound.suggestion2')}
  • -
  • {t('dmsNotFound.suggestion3')}
  • -
    -
    - - } - /> -
    - ); -}; - -export default NotFoundPage; diff --git a/packages/base/src/page/NotFoundPage/style.ts b/packages/base/src/page/NotFoundPage/style.ts deleted file mode 100644 index 5608e7250..000000000 --- a/packages/base/src/page/NotFoundPage/style.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { styled } from '@mui/material/styles'; - -export const SuggestionList = styled('ul')` - text-align: left; - padding-left: 20px; - margin: 0; - - li { - margin-bottom: 8px; - color: ${({ theme }) => theme.sharedTheme.uiToken.colorTextSecondary}; - - &:last-child { - margin-bottom: 0; - } - } -`; diff --git a/packages/base/src/router/router.tsx b/packages/base/src/router/router.tsx index 814468224..29b09f0af 100644 --- a/packages/base/src/router/router.tsx +++ b/packages/base/src/router/router.tsx @@ -16,7 +16,6 @@ import { // #endif const ProjectDetail = lazy(() => import('../page/Project/Detail')); -const NotFoundPage = lazy(() => import('../page/NotFoundPage')); // #if [ee] const AvailabilityZoneWrapper = lazy( () => import('../page/AvailabilityZone/AvailabilityZoneWrapper') @@ -56,8 +55,8 @@ export const AuthRouterConfig: RouterConfigItem[] = [ // #endif { path: '*', - key: 'notFound', - element: + key: 'redirectToHome', + element: } ]; diff --git a/packages/base/src/router/test/__snapshots__/router.base.test.tsx.snap b/packages/base/src/router/test/__snapshots__/router.base.test.tsx.snap index 12380435e..d12819aff 100644 --- a/packages/base/src/router/test/__snapshots__/router.base.test.tsx.snap +++ b/packages/base/src/router/test/__snapshots__/router.base.test.tsx.snap @@ -765,9 +765,9 @@ exports[`base/router-base-ee render base route data snap 1`] = ` }, { "element":
    - notFound + redirectToHome
    , - "key": "notFound", + "key": "redirectToHome", "path": "*", }, ] diff --git a/packages/base/src/router/test/__snapshots__/router.ce.base.test.tsx.snap b/packages/base/src/router/test/__snapshots__/router.ce.base.test.tsx.snap index 0e00d46ee..67b5878c4 100644 --- a/packages/base/src/router/test/__snapshots__/router.ce.base.test.tsx.snap +++ b/packages/base/src/router/test/__snapshots__/router.ce.base.test.tsx.snap @@ -585,9 +585,9 @@ exports[`base/router-base-ce render base route data snap 1`] = ` }, { "element":
    - notFound + redirectToHome
    , - "key": "notFound", + "key": "redirectToHome", "path": "*", }, ] diff --git a/packages/base/src/router/test/__snapshots__/router.ce.sqle.test.tsx.snap b/packages/base/src/router/test/__snapshots__/router.ce.sqle.test.tsx.snap index f1084a170..de6c6856b 100644 --- a/packages/base/src/router/test/__snapshots__/router.ce.sqle.test.tsx.snap +++ b/packages/base/src/router/test/__snapshots__/router.ce.sqle.test.tsx.snap @@ -4,7 +4,7 @@ exports[`base/router-sqle-ce render route sqle index page 1`] = `
    - notFound + redirectToHome
    diff --git a/packages/base/src/router/test/__snapshots__/router.sqle.test.tsx.snap b/packages/base/src/router/test/__snapshots__/router.sqle.test.tsx.snap index aa6ced2bb..f205ce64d 100644 --- a/packages/base/src/router/test/__snapshots__/router.sqle.test.tsx.snap +++ b/packages/base/src/router/test/__snapshots__/router.sqle.test.tsx.snap @@ -4,7 +4,7 @@ exports[`base/router-sqle-ee render route sqle index page 1`] = `
    - notFound + redirectToHome