ant-design/.dumi/pages/404/index.tsx
afc163 59ad48476b
refactor: add boime lint and fix lint errrors (#49536)
* chore: add boime lint

* fix lint

* use files ignore

* revert change

* ignore clarity.js

* fix some errors

* fix some errors

* fix some errors

* fix some errors

* add yml file

* Update clarity.js

Signed-off-by: afc163 <afc163@gmail.com>

* add npm run lint:biome

* add npm run lint:biome

* fix test case

* fix ts errors

* fix ts errors

* fix lint and add .lintstagedrc

* shorten prop name

* chore: update package.json

* update biome.json

* chore: remove stylelint

* chore: useOptionalChain

* fix lint

* biome format

* prettier all code

* prettier all code

* fix site test

---------

Signed-off-by: afc163 <afc163@gmail.com>
2024-06-22 21:59:12 +08:00

60 lines
1.6 KiB
TypeScript

import React, { useEffect } from 'react';
import { HomeOutlined } from '@ant-design/icons';
import { Button, Result } from 'antd';
import { useLocation } from 'dumi';
import Link from '../../theme/common/Link';
import * as utils from '../../theme/utils';
export interface NotFoundProps {
router: {
push: (pathname: string) => void;
replace: (pathname: string) => void;
};
}
const DIRECT_MAP: Record<string, string> = {
'docs/spec/download': 'docs/resources',
'docs/spec/work-with-us': 'docs/resources',
};
const NotFoundPage: React.FC<NotFoundProps> = ({ router }) => {
const { pathname } = useLocation();
const isZhCN = utils.isZhCN(pathname);
useEffect(() => {
const directLinks = Object.keys(DIRECT_MAP);
for (let i = 0; i < directLinks.length; i += 1) {
const matchPath = directLinks[i];
if (pathname.includes(matchPath)) {
router.replace(utils.getLocalizedPathname(`/${DIRECT_MAP[matchPath]}`, isZhCN).pathname);
}
}
// Report if necessary
const { yuyanMonitor } = window as any;
yuyanMonitor?.log({
code: 11,
msg: `Page not found: ${location.href}; Source: ${document.referrer}`,
});
}, []);
return (
<Result
status="404"
title="404"
subTitle={isZhCN ? '你访问的页面貌似不存在?' : 'Sorry, the page you visited does not exist.'}
extra={
<Link to={utils.getLocalizedPathname('/', isZhCN)}>
<Button type="primary" icon={<HomeOutlined />}>
{isZhCN ? '返回 Ant Design 首页' : 'Back to home page'}
</Button>
</Link>
}
/>
);
};
export default NotFoundPage;