bridebook-ui-library
Version:
Bridebook UI Library
34 lines (27 loc) • 1.06 kB
JavaScript
import PureComponent from 'react-pure-render/component';
import React, {PropTypes} from 'react';
// RouterHandler is back since suggested solution via React.cloneElement sucks.
// https://github.com/rackt/react-router/blob/master/UPGRADE_GUIDE.md#routehandler
// This is just syntax sugar for react-router 1.0.0 filtering children in props.
// https://github.com/este/este/issues/535
// Note React does not validate propTypes that are specified via cloneElement.
// It is recommended to make such propTypes optional.
// https://github.com/facebook/react/issues/4494#issuecomment-125068868
export class RouteHelper extends PureComponent {
static propTypes = {
children: PropTypes.object
}
render() {
const {children} = this.props;
let result = null;
if (!children) {
result = null;
} else {
// That makes nested routes working.
const propsWithoutChildren = {...this.props};
delete propsWithoutChildren.children;
result = React.cloneElement(children, propsWithoutChildren);
}
return result;
}
}