PageHeaderLayout.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import React from 'react';
  2. import { FormattedMessage } from 'umi/locale';
  3. import { Link } from 'dva/router';
  4. import PageHeader from 'components/PageHeader';
  5. import GridContent from './GridContent';
  6. import styles from './PageHeaderLayout.less';
  7. import MenuContext from './MenuContext';
  8. const PageHeaderLayout = ({ children, wrapperClassName, top, ...restProps }) => (
  9. <div style={{ margin: '-24px -24px 0' }} className={wrapperClassName}>
  10. {top}
  11. <MenuContext.Consumer>
  12. {value => {
  13. return (
  14. <PageHeader
  15. home={<FormattedMessage id="menu.home" defaultMessage="Home" />}
  16. {...value}
  17. key="pageheader"
  18. {...restProps}
  19. linkElement={Link}
  20. itemRender={item => {
  21. if (item.locale) {
  22. return <FormattedMessage id={item.locale} defaultMessage={item.name} />;
  23. }
  24. return item.name;
  25. }}
  26. />
  27. );
  28. }}
  29. </MenuContext.Consumer>
  30. {children ? (
  31. <div className={styles.content}>
  32. <GridContent>{children}</GridContent>
  33. </div>
  34. ) : null}
  35. </div>
  36. );
  37. export default PageHeaderLayout;