diff --git a/.travis.yml b/.travis.yml index da1d3b9..e920d76 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,10 @@ sudo: false +dist: xenial + +services: + - xvfb + language: node_js node_js: - stable @@ -14,8 +19,6 @@ cache: before_install: - export CHROME_BIN=chromium-browser - - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start branches: only: diff --git a/package.json b/package.json index cb9d85b..40d548c 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "invariant": "^2.2.2", "lodash": "^4.17.4", "prop-types": "^15.5.10", + "react-is": "^16.8.6", "react-static-container": "^1.0.1" }, "peerDependencies": { @@ -53,7 +54,7 @@ "babel-loader": "^7.0.0", "babel-plugin-add-module-exports": "^0.2.1", "babel-plugin-dev-expression": "^0.2.1", - "babel-plugin-relay": "^1.0.1", + "babel-plugin-relay": "1.0.1", "babel-plugin-transform-runtime": "^6.23.0", "babel-polyfill": "^6.23.0", "babel-preset-latest": "^6.24.1", @@ -79,7 +80,7 @@ "mocha": "^3.4.2", "react": "^15.5.4", "react-dom": "^15.5.4", - "react-relay": "^1.0.0", + "react-relay": "1.0.0", "react-router": "^2.8.0", "relay-local-schema": "^0.5.5", "rimraf": "^2.6.1", diff --git a/src/QueryAggregator.js b/src/QueryAggregator.js index 8d7a36c..af8c841 100644 --- a/src/QueryAggregator.js +++ b/src/QueryAggregator.js @@ -1,6 +1,7 @@ import invariant from 'invariant'; import isEqual from 'lodash/isEqual'; import Relay from 'react-relay/classic'; +import { isValidElementType } from 'react-is'; import getRouteQueries from './utils/getRouteQueries'; import mergeRouteParams from './utils/mergeRouteParams'; @@ -50,7 +51,10 @@ export default class QueryAggregator { let componentMap; let queryMap; - if (typeof routeComponent === 'object') { + if ( + typeof routeComponent === 'object' && + !isValidElementType(routeComponent) + ) { componentMap = routeComponent; queryMap = routeQueries; } else {