index.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import React from 'react';
  2. import { FormattedMessage } from 'umi/locale';
  3. import Link from 'umi/link';
  4. import PageHeader from '@/components/PageHeader';
  5. import { connect } from 'dva';
  6. import GridContent from './GridContent';
  7. import styles from './index.less';
  8. import MenuContext from '@/layouts/MenuContext';
  9. const PageHeaderWrapper = ({ children, contentWidth, wrapperClassName, top, ...restProps }) => (
  10. <div style={{ margin: '-24px -24px 0' }} className={wrapperClassName}>
  11. {top}
  12. <MenuContext.Consumer>
  13. {value => (
  14. <PageHeader
  15. wide={contentWidth === 'Fixed'}
  16. home={<FormattedMessage id="menu.home" defaultMessage="Home" />}
  17. {...value}
  18. key="pageheader"
  19. {...restProps}
  20. linkElement={Link}
  21. itemRender={item => {
  22. if (item.locale) {
  23. return <FormattedMessage id={item.locale} defaultMessage={item.name} />;
  24. }
  25. return item.name;
  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 connect(({ setting }) => ({
  38. contentWidth: setting.contentWidth,
  39. }))(PageHeaderWrapper);