Skip to content

Commit

Permalink
feat(client-react): provide isQueryPresent() as static API method
Browse files Browse the repository at this point in the history
  • Loading branch information
paveltiunov committed Oct 2, 2019
1 parent 8a39c9d commit 59dc5ce
Show file tree
Hide file tree
Showing 12 changed files with 2,157 additions and 101 deletions.
4 changes: 4 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@
"@cubejs-client/core": "^0.10.0",
"babel-runtime": "^6.26.0",
"babelrc-rollup": "^3.0.0",
"eslint": "5.12.0",
"eslint-config-airbnb-base": "^14.0.0",
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-node": "^10.0.0",
"flush-promises": "^1.0.2",
"http-server": "^0.11.1",
"lerna": "^3.13.1",
Expand Down
1 change: 1 addition & 0 deletions packages/cubejs-react/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ module.exports = {
"react/jsx-filename-extension": 0,
"react/react-in-jsx-scope": 0, // remove when import React is ready
"import/no-unresolved": 0,
"react/jsx-props-no-spreading": 0,
"comma-dangle": 0,
"no-console": 0,
"arrow-parens": 0,
Expand Down
64 changes: 45 additions & 19 deletions packages/cubejs-react/dist/cubejs-react.esm.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import 'core-js/modules/web.dom.iterable';
import 'core-js/modules/es6.array.iterator';
import 'core-js/modules/es6.string.iterator';
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
import _createClass from '@babel/runtime/helpers/createClass';
import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
import _createClass from '@babel/runtime/helpers/createClass';
import _inherits from '@babel/runtime/helpers/inherits';
import React from 'react';
import { func, object, any, bool } from 'prop-types';
Expand All @@ -27,6 +27,13 @@ var QueryRenderer =
function (_React$Component) {
_inherits(QueryRenderer, _React$Component);

_createClass(QueryRenderer, null, [{
key: "isQueryPresent",
value: function isQueryPresent(query) {
return query.measures && query.measures.length || query.dimensions && query.dimensions.length || query.timeDimensions && query.timeDimensions.length;
}
}]);

function QueryRenderer(props) {
var _this;

Expand Down Expand Up @@ -68,11 +75,6 @@ function (_React$Component) {
this.loadQueries(queries);
}
}
}, {
key: "isQueryPresent",
value: function isQueryPresent(query) {
return query.measures && query.measures.length || query.dimensions && query.dimensions.length || query.timeDimensions && query.timeDimensions.length;
}
}, {
key: "load",
value: function load(query) {
Expand All @@ -88,7 +90,7 @@ function (_React$Component) {
loadSql = _this$props3.loadSql,
cubejsApi = _this$props3.cubejsApi;

if (query && this.isQueryPresent(query)) {
if (query && QueryRenderer.isQueryPresent(query)) {
if (loadSql === 'only') {
cubejsApi.sql(query, {
mutexObj: this.mutexObj,
Expand Down Expand Up @@ -156,6 +158,7 @@ function (_React$Component) {
value: function loadQueries(queries) {
var _this3 = this;

var cubejsApi = this.props.cubejsApi;
this.setState({
isLoading: true,
resultSet: null,
Expand All @@ -166,7 +169,7 @@ function (_React$Component) {
name = _ref4[0],
query = _ref4[1];

return _this3.props.cubejsApi.load(query, {
return cubejsApi.load(query, {
mutexObj: _this3.mutexObj,
mutexKey: name
}).then(function (r) {
Expand All @@ -190,17 +193,24 @@ function (_React$Component) {
}, {
key: "render",
value: function render() {
var _this$state = this.state,
error = _this$state.error,
queries = _this$state.queries,
resultSet = _this$state.resultSet,
isLoading = _this$state.isLoading,
sqlQuery = _this$state.sqlQuery;
var render = this.props.render;
var loadState = {
error: this.state.error,
resultSet: this.props.queries ? this.state.resultSet || {} : this.state.resultSet,
error: error,
resultSet: queries ? resultSet || {} : resultSet,
loadingState: {
isLoading: this.state.isLoading
isLoading: isLoading
},
sqlQuery: this.state.sqlQuery
sqlQuery: sqlQuery
};

if (this.props.render) {
return this.props.render(loadState);
if (render) {
return render(loadState);
}

return null;
Expand All @@ -211,17 +221,19 @@ function (_React$Component) {
}(React.Component);
QueryRenderer.propTypes = {
render: func,
afterRender: func,
cubejsApi: object.isRequired,
query: object,
queries: object,
loadSql: any
};
QueryRenderer.defaultProps = {
query: {}
query: null,
render: null,
queries: null,
loadSql: null
};

var QueryRendererWithTotals = (function (_ref) {
var QueryRendererWithTotals = function QueryRendererWithTotals(_ref) {
var query = _ref.query,
restProps = _objectWithoutProperties(_ref, ["query"]);

Expand All @@ -238,7 +250,21 @@ var QueryRendererWithTotals = (function (_ref) {
main: query
}
}, restProps));
});
};

QueryRendererWithTotals.propTypes = {
render: func,
cubejsApi: object.isRequired,
query: object,
queries: object,
loadSql: any
};
QueryRendererWithTotals.defaultProps = {
query: null,
render: null,
queries: null,
loadSql: null
};

var QueryBuilder =
/*#__PURE__*/
Expand Down Expand Up @@ -314,7 +340,7 @@ function (_React$Component) {
key: "isQueryPresent",
value: function isQueryPresent() {
var query = this.state.query;
return query.measures && query.measures.length || query.dimensions && query.dimensions.length || query.timeDimensions && query.timeDimensions.length;
return QueryRenderer.isQueryPresent(query);
}
}, {
key: "prepareRenderProps",
Expand Down
64 changes: 45 additions & 19 deletions packages/cubejs-react/dist/cubejs-react.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ require('core-js/modules/web.dom.iterable');
require('core-js/modules/es6.array.iterator');
require('core-js/modules/es6.string.iterator');
var _classCallCheck = _interopDefault(require('@babel/runtime/helpers/classCallCheck'));
var _createClass = _interopDefault(require('@babel/runtime/helpers/createClass'));
var _possibleConstructorReturn = _interopDefault(require('@babel/runtime/helpers/possibleConstructorReturn'));
var _getPrototypeOf = _interopDefault(require('@babel/runtime/helpers/getPrototypeOf'));
var _createClass = _interopDefault(require('@babel/runtime/helpers/createClass'));
var _inherits = _interopDefault(require('@babel/runtime/helpers/inherits'));
var React = _interopDefault(require('react'));
var PropTypes = require('prop-types');
Expand All @@ -33,6 +33,13 @@ var QueryRenderer =
function (_React$Component) {
_inherits(QueryRenderer, _React$Component);

_createClass(QueryRenderer, null, [{
key: "isQueryPresent",
value: function isQueryPresent(query) {
return query.measures && query.measures.length || query.dimensions && query.dimensions.length || query.timeDimensions && query.timeDimensions.length;
}
}]);

function QueryRenderer(props) {
var _this;

Expand Down Expand Up @@ -74,11 +81,6 @@ function (_React$Component) {
this.loadQueries(queries);
}
}
}, {
key: "isQueryPresent",
value: function isQueryPresent(query) {
return query.measures && query.measures.length || query.dimensions && query.dimensions.length || query.timeDimensions && query.timeDimensions.length;
}
}, {
key: "load",
value: function load(query) {
Expand All @@ -94,7 +96,7 @@ function (_React$Component) {
loadSql = _this$props3.loadSql,
cubejsApi = _this$props3.cubejsApi;

if (query && this.isQueryPresent(query)) {
if (query && QueryRenderer.isQueryPresent(query)) {
if (loadSql === 'only') {
cubejsApi.sql(query, {
mutexObj: this.mutexObj,
Expand Down Expand Up @@ -162,6 +164,7 @@ function (_React$Component) {
value: function loadQueries(queries) {
var _this3 = this;

var cubejsApi = this.props.cubejsApi;
this.setState({
isLoading: true,
resultSet: null,
Expand All @@ -172,7 +175,7 @@ function (_React$Component) {
name = _ref4[0],
query = _ref4[1];

return _this3.props.cubejsApi.load(query, {
return cubejsApi.load(query, {
mutexObj: _this3.mutexObj,
mutexKey: name
}).then(function (r) {
Expand All @@ -196,17 +199,24 @@ function (_React$Component) {
}, {
key: "render",
value: function render() {
var _this$state = this.state,
error = _this$state.error,
queries = _this$state.queries,
resultSet = _this$state.resultSet,
isLoading = _this$state.isLoading,
sqlQuery = _this$state.sqlQuery;
var render = this.props.render;
var loadState = {
error: this.state.error,
resultSet: this.props.queries ? this.state.resultSet || {} : this.state.resultSet,
error: error,
resultSet: queries ? resultSet || {} : resultSet,
loadingState: {
isLoading: this.state.isLoading
isLoading: isLoading
},
sqlQuery: this.state.sqlQuery
sqlQuery: sqlQuery
};

if (this.props.render) {
return this.props.render(loadState);
if (render) {
return render(loadState);
}

return null;
Expand All @@ -217,17 +227,19 @@ function (_React$Component) {
}(React.Component);
QueryRenderer.propTypes = {
render: PropTypes.func,
afterRender: PropTypes.func,
cubejsApi: PropTypes.object.isRequired,
query: PropTypes.object,
queries: PropTypes.object,
loadSql: PropTypes.any
};
QueryRenderer.defaultProps = {
query: {}
query: null,
render: null,
queries: null,
loadSql: null
};

var QueryRendererWithTotals = (function (_ref) {
var QueryRendererWithTotals = function QueryRendererWithTotals(_ref) {
var query = _ref.query,
restProps = _objectWithoutProperties(_ref, ["query"]);

Expand All @@ -244,7 +256,21 @@ var QueryRendererWithTotals = (function (_ref) {
main: query
}
}, restProps));
});
};

QueryRendererWithTotals.propTypes = {
render: PropTypes.func,
cubejsApi: PropTypes.object.isRequired,
query: PropTypes.object,
queries: PropTypes.object,
loadSql: PropTypes.any
};
QueryRendererWithTotals.defaultProps = {
query: null,
render: null,
queries: null,
loadSql: null
};

var QueryBuilder =
/*#__PURE__*/
Expand Down Expand Up @@ -320,7 +346,7 @@ function (_React$Component) {
key: "isQueryPresent",
value: function isQueryPresent() {
var query = this.state.query;
return query.measures && query.measures.length || query.dimensions && query.dimensions.length || query.timeDimensions && query.timeDimensions.length;
return QueryRenderer.isQueryPresent(query);
}
}, {
key: "prepareRenderProps",
Expand Down

0 comments on commit 59dc5ce

Please sign in to comment.