function createFullPageComponent(componentClass) {
  var FullPageComponent = ReactCompositeComponent.createClass({
    displayName: 'ReactFullPageComponent' + (
      componentClass.type.displayName || ''
    ),

    componentWillUnmount: function() {
      ("production" !== "development" ? invariant(
        false,
        '%s tried to unmount. Because of cross-browser quirks it is ' +
        'impossible to unmount some top-level components (eg <html>, <head>, ' +
        'and <body>) reliably and efficiently. To fix this, have a single ' +
        'top-level component that never unmounts render these elements.',
        this.constructor.displayName
      ) : invariant(false));
    },

    render: function() {
      return this.transferPropsTo(componentClass(null, this.props.children));
    }
  });

  return FullPageComponent;
}
Create a component that will throw an exception when unmounted.

Components like <html> <head> and <body> can't be removed or added
easily in a cross-browser way, however it's valuable to be able to
take advantage of React's reconciliation for styling and <title>
management. So we just document it and throw in dangerous cases.

@param {function} componentClass convenience constructor to wrap
@return {function} convenience constructor of new component