|
|
@@ -6,16 +6,23 @@ import styles from './index.less';
|
|
|
|
|
|
const { TabPane } = Tabs;
|
|
|
|
|
|
-function getBreadcrumbNameWithParams(breadcrumbNameMap, url) {
|
|
|
- let name = '';
|
|
|
+function getBreadcrumbName(breadcrumbNameMap, url) {
|
|
|
+ if (breadcrumbNameMap[url] && breadcrumbNameMap[url].name) {
|
|
|
+ return breadcrumbNameMap[url].name;
|
|
|
+ }
|
|
|
+ const urlWithoutSplash = url.replace(/\/$/, '');
|
|
|
+ if (breadcrumbNameMap[urlWithoutSplash] && breadcrumbNameMap[urlWithoutSplash].name) {
|
|
|
+ return breadcrumbNameMap[urlWithoutSplash].name;
|
|
|
+ }
|
|
|
+ let breadcrumbName = '';
|
|
|
Object.keys(breadcrumbNameMap).forEach((item) => {
|
|
|
const itemRegExpStr = `^${item.replace(/:[\w-]+/g, '[\\w-]+')}$`;
|
|
|
const itemRegExp = new RegExp(itemRegExpStr);
|
|
|
if (itemRegExp.test(url)) {
|
|
|
- name = breadcrumbNameMap[item];
|
|
|
+ breadcrumbName = breadcrumbNameMap[item].name;
|
|
|
}
|
|
|
});
|
|
|
- return name;
|
|
|
+ return breadcrumbName || url;
|
|
|
}
|
|
|
|
|
|
export default class PageHeader extends PureComponent {
|
|
|
@@ -72,12 +79,9 @@ export default class PageHeader extends PureComponent {
|
|
|
return (
|
|
|
<Breadcrumb.Item key={url}>
|
|
|
{createElement(
|
|
|
- index === pathSnippets.length - 1 ? 'span' : linkElement,
|
|
|
+ (index === pathSnippets.length - 1) ? 'span' : linkElement,
|
|
|
{ [linkElement === 'a' ? 'href' : 'to']: url },
|
|
|
- breadcrumbNameMap[url] ||
|
|
|
- breadcrumbNameMap[url.replace('/', '')] ||
|
|
|
- getBreadcrumbNameWithParams(breadcrumbNameMap, url) ||
|
|
|
- url
|
|
|
+ getBreadcrumbName(breadcrumbNameMap, url),
|
|
|
)}
|
|
|
</Breadcrumb.Item>
|
|
|
);
|