update display names for layout components (#21123)

This commit is contained in:
Teng YANG 2020-01-28 15:03:04 +08:00 committed by Amumu
parent 0f1629b244
commit 8cf8c16142

View File

@ -6,6 +6,7 @@ import { ConfigConsumer, ConfigConsumerProps } from '../config-provider';
export interface GeneratorProps { export interface GeneratorProps {
suffixCls: string; suffixCls: string;
tagName: 'header' | 'footer' | 'main' | 'section'; tagName: 'header' | 'footer' | 'main' | 'section';
displayName: string;
} }
export interface BasicProps extends React.HTMLAttributes<HTMLDivElement> { export interface BasicProps extends React.HTMLAttributes<HTMLDivElement> {
prefixCls?: string; prefixCls?: string;
@ -29,9 +30,11 @@ interface BasicPropsWithTagName extends BasicProps {
tagName: 'header' | 'footer' | 'main' | 'section'; tagName: 'header' | 'footer' | 'main' | 'section';
} }
function generator({ suffixCls, tagName }: GeneratorProps) { function generator({ suffixCls, tagName, displayName }: GeneratorProps) {
return (BasicComponent: any) => { return (BasicComponent: any) => {
return class Adapter extends React.Component<BasicProps, any> { return class Adapter extends React.Component<BasicProps, any> {
static displayName: string = displayName;
static Header: any; static Header: any;
static Footer: any; static Footer: any;
@ -116,21 +119,25 @@ const Layout: React.ComponentClass<BasicProps> & {
} = generator({ } = generator({
suffixCls: 'layout', suffixCls: 'layout',
tagName: 'section', tagName: 'section',
displayName: 'Layout',
})(BasicLayout); })(BasicLayout);
const Header = generator({ const Header = generator({
suffixCls: 'layout-header', suffixCls: 'layout-header',
tagName: 'header', tagName: 'header',
displayName: 'Header',
})(Basic); })(Basic);
const Footer = generator({ const Footer = generator({
suffixCls: 'layout-footer', suffixCls: 'layout-footer',
tagName: 'footer', tagName: 'footer',
displayName: 'Footer',
})(Basic); })(Basic);
const Content = generator({ const Content = generator({
suffixCls: 'layout-content', suffixCls: 'layout-content',
tagName: 'main', tagName: 'main',
displayName: 'Content',
})(Basic); })(Basic);
Layout.Header = Header; Layout.Header = Header;