mirror of
https://github.com/ant-design/ant-design.git
synced 2024-11-24 11:10:01 +08:00
59ad48476b
* 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>
60 lines
1.6 KiB
TypeScript
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;
|