Optimization and rewriting PrimaryLayout.

This commit is contained in:
zuiidea
2018-09-18 22:04:30 +08:00
parent 5aa187334a
commit 4e7795ec7c
22 changed files with 503 additions and 786 deletions
+1 -46
View File
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types'
import { connect } from 'dva'
import { Helmet } from 'react-helmet'
import { Loader } from 'components'
import { pathMatchRegexp } from 'utils'
import { queryLayout } from 'utils'
import NProgress from 'nprogress'
import config from 'utils/config'
import withRouter from 'umi/withRouter'
@@ -17,51 +17,6 @@ const LayoutMap = {
public: PublicLayout,
}
/**
* Query which layout should be used for the current path based on the configuration.
* @param {layouts} layouts Layout configuration.
* @param {pathname} pathname Path name to be queried.
* @return {string} Return frist object when query success.
*/
const queryLayout = (layouts, pathname) => {
let result = 'public'
const isMatch = regepx => {
return regepx instanceof RegExp
? regepx.test(pathname)
: pathMatchRegexp(regepx, pathname)
}
for (const item of layouts) {
let include = false
let exlude = false
if (item.include) {
for (const regepx of item.include) {
if (isMatch(regepx)) {
include = true
break
}
}
}
if (include && item.exlude) {
for (const regepx of item.exlude) {
if (isMatch(regepx)) {
exlude = true
break
}
}
}
if (include && !exlude) {
result = item.name
break
}
}
return result
}
@withRouter
@connect(({ loading }) => ({ loading }))
class BaseLayout extends PureComponent {