import React, { useMemo } from 'react'; import RcFooter from 'rc-footer'; import { Link } from 'bisheng/router'; import type { WrappedComponentProps } from 'react-intl'; import { FormattedMessage, injectIntl } from 'react-intl'; import { AntDesignOutlined, MediumOutlined, TwitterOutlined, ZhihuOutlined, UsergroupAddOutlined, GithubOutlined, HistoryOutlined, ProfileOutlined, BugOutlined, IssuesCloseOutlined, QuestionCircleOutlined, BgColorsOutlined, } from '@ant-design/icons'; import type { FooterColumn } from 'rc-footer/lib/column'; import { getLocalizedPathname } from '../utils'; const Footer: React.FC = props => { const { intl, location } = props; const getColumns = useMemo(() => { const isZhCN = intl.locale === 'zh-CN'; const getLinkHash = (path: string, hash: { zhCN: string; enUS: string }) => { const pathName = getLocalizedPathname(path, isZhCN, location.query, hash); const { pathname, query = {} } = pathName; const pathnames = pathname.split('#'); if ('direction' in query) { return `${pathnames[0]}?direction=rtl#${pathnames[1]}`; } return pathname; }; const getLink = (path: string) => { const pathName = getLocalizedPathname(path, isZhCN, location.query); const { pathname, query = {} } = pathName; if ('direction' in query) { return `${pathname}?direction=rtl}`; } return pathname; }; const col1 = { title: , items: [ { title: 'Ant Design Charts', url: 'https://charts.ant.design', openExternal: true, }, { title: 'Ant Design Pro', url: 'https://pro.ant.design', openExternal: true, }, { title: 'Ant Design Pro Components', url: 'https://procomponents.ant.design', openExternal: true, }, { title: 'Ant Design Mobile', url: 'https://mobile.ant.design', openExternal: true, }, { title: 'Ant Design Landing', description: , url: 'https://landing.ant.design', openExternal: true, }, { title: 'Scaffolds', description: , url: 'https://scaffold.ant.design', openExternal: true, }, { title: 'Umi', description: , url: 'https://umijs.org', openExternal: true, }, { title: 'Dumi', description: , url: 'https://d.umijs.org', openExternal: true, }, { title: 'qiankun', description: , url: 'https://qiankun.umijs.org', openExternal: true, }, { title: 'ahooks', description: , url: 'https://github.com/alibaba/hooks', openExternal: true, }, { title: 'Ant Motion', description: , url: 'https://motion.ant.design', openExternal: true, }, { title: , url: 'https://ant-design.gitee.io/', }, ], }; const col2 = { title: , items: [ { icon: , title: , url: 'https://github.com/websemantics/awesome-ant-design', openExternal: true, }, { icon: , title: 'Medium', url: 'http://medium.com/ant-design/', openExternal: true, }, { icon: , title: 'Twitter', url: 'http://twitter.com/antdesignui', openExternal: true, }, { icon: , title: , url: 'http://zhuanlan.zhihu.com/antdesign', openExternal: true, }, { icon: , title: , url: 'http://zhuanlan.zhihu.com/xtech', openExternal: true, }, { icon: ( seeconf ), title: 'SEE Conf', description: , url: 'https://seeconf.antfin.com/', openExternal: true, }, ], }; if (isZhCN) { col2.items.push({ icon: , title: , url: getLinkHash('/docs/resources', { zhCN: '加入我们', enUS: 'JoinUs', }), LinkComponent: Link, } as unknown as typeof col2['items'][number]); } const col3 = { title: , items: [ { icon: , title: 'GitHub', url: 'https://github.com/ant-design/ant-design', openExternal: true, }, { icon: , title: , url: getLink('/changelog'), LinkComponent: Link, }, { icon: , title: , url: getLink('/docs/react/faq'), LinkComponent: Link, }, { icon: , title: , url: 'https://new-issue.ant.design/', openExternal: true, }, { icon: , title: , url: 'https://github.com/ant-design/ant-design/issues', openExternal: true, }, { icon: , title: , url: 'https://github.com/ant-design/ant-design/discussions', openExternal: true, }, { icon: , title: , url: 'http://stackoverflow.com/questions/tagged/antd', openExternal: true, }, { icon: , title: , url: 'https://segmentfault.com/t/antd', openExternal: true, }, ], }; const col4 = { icon: ( Ant XTech ), title: , items: [ { icon: ( yuque ), title: , url: 'https://yuque.com', description: , openExternal: true, }, { icon: ( AntV ), title: 'AntV', url: 'https://antv.vision', description: , openExternal: true, }, { icon: ( Egg ), title: 'Egg', url: 'https://eggjs.org', description: , openExternal: true, }, { icon: ( kitchen ), title: 'Kitchen', description: , url: 'https://kitchen.alipay.com', openExternal: true, }, { icon: ( xtech ), title: , url: 'https://xtech.antfin.com/', openExternal: true, }, { icon: , title: , url: getLinkHash('/components/config-provider/', { zhCN: 'components-config-provider-demo-theme', enUS: 'components-config-provider-demo-theme', }), LinkComponent: Link, }, ], }; return [col1, col2, col3, col4]; }, [intl.locale, location.query]); return ( Made with by {/* eslint-disable-next-line react/jsx-curly-brace-presence */}{' '} } /> ); }; export default injectIntl(Footer);