UserLayout.js 2.09 KB
Newer Older
1 2
import React from 'react';
import PropTypes from 'prop-types';
ddcat1115's avatar
ddcat1115 committed
3
import { Link, Route } from 'dva/router';
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
import DocumentTitle from 'react-document-title';
import { Icon } from 'antd';
import GlobalFooter from '../components/GlobalFooter';
import styles from './UserLayout.less';

const links = [{
  title: '帮助',
  href: '',
}, {
  title: '隐私',
  href: '',
}, {
  title: '条款',
  href: '',
}];

const copyright = <div>Copyright <Icon type="copyright" /> 2017 蚂蚁金服体验技术部出品</div>;

class UserLayout extends React.PureComponent {
  static childContextTypes = {
ddcat1115's avatar
ddcat1115 committed
24
    location: PropTypes.object,
25 26
  }
  getChildContext() {
ddcat1115's avatar
ddcat1115 committed
27 28
    const { location } = this.props;
    return { location };
29 30
  }
  getPageTitle() {
31
    const { getRouteData, location } = this.props;
ddcat1115's avatar
ddcat1115 committed
32 33 34 35 36
    const { pathname } = location;
    let title = 'Ant Design Pro';
    getRouteData('UserLayout').forEach((item) => {
      if (item.path === pathname) {
        title = `${item.name} - Ant Design Pro`;
37
      }
ddcat1115's avatar
ddcat1115 committed
38 39
    });
    return title;
40 41
  }
  render() {
42 43
    const { getRouteData } = this.props;

44 45 46 47 48
    return (
      <DocumentTitle title={this.getPageTitle()}>
        <div className={styles.container}>
          <div className={styles.top}>
            <div className={styles.header}>
ddcat1115's avatar
ddcat1115 committed
49 50 51 52
              <Link to="/">
                <img alt="" className={styles.logo} src="https://gw.alipayobjects.com/zos/rmsportal/NGCCBOENpgTXpBWUIPnI.svg" />
                <span className={styles.title}>Ant Design</span>
              </Link>
53
            </div>
afc163's avatar
afc163 committed
54
            <div className={styles.desc}>Ant Design 是西湖区最具影响力的 Web 设计规范</div>
55
          </div>
ddcat1115's avatar
ddcat1115 committed
56 57 58 59 60 61 62
          {
            getRouteData('UserLayout').map(item =>
              (
                <Route
                  exact={item.exact}
                  key={item.path}
                  path={item.path}
63
                  component={item.component}
ddcat1115's avatar
ddcat1115 committed
64 65 66 67
                />
              )
            )
          }
68 69 70 71 72 73 74 75
          <GlobalFooter className={styles.footer} links={links} copyright={copyright} />
        </div>
      </DocumentTitle>
    );
  }
}

export default UserLayout;