index.tsx 937 Bytes
Newer Older
陈帅's avatar
陈帅 committed
1 2
import React from 'react';
import { RouteContext } from '@ant-design/pro-layout';
陈帅's avatar
陈帅 committed
3
import { PageHeader, Typography } from 'antd';
陈帅's avatar
陈帅 committed
4 5 6 7
import styles from './index.less';

interface IPageHeaderWrapperProps {
  content?: React.ReactNode;
陈帅's avatar
陈帅 committed
8
  title?: React.ReactNode;
陈帅's avatar
陈帅 committed
9 10
}

陈帅's avatar
陈帅 committed
11
const PageHeaderWrapper: React.SFC<IPageHeaderWrapperProps> = ({ children, content, title }) => (
陈帅's avatar
陈帅 committed
12 13 14
  <RouteContext.Consumer>
    {value => (
      <div style={{ margin: '-24px -24px 0' }}>
陈帅's avatar
陈帅 committed
15
        <PageHeader
陈帅's avatar
陈帅 committed
16
          {...value}
陈帅's avatar
陈帅 committed
17 18 19 20 21 22 23
          title={
            <Typography.Title
              level={4}
              style={{
                margin: 0,
              }}
            >
陈帅's avatar
陈帅 committed
24
              {title || value.title}
陈帅's avatar
陈帅 committed
25 26 27
            </Typography.Title>
          }
        >
陈帅's avatar
陈帅 committed
28 29 30 31 32 33 34 35 36
          {content}
        </PageHeader>
        {children ? <div className={styles.content}>{children}</div> : null}
      </div>
    )}
  </RouteContext.Consumer>
);

export default PageHeaderWrapper;